apt-get默认安装的nginx为1.10,如果嫌太老了可以修改安装源的方式来获得更新的版本;

一、添加Nginx源 新建一个nginx.list文件

vi /etc/apt/sources.list.d/nginx.list

加入以下内容:

deb http://nginx.org/packages/mainline/debian/ stretch nginx
deb-src http://nginx.org/packages/mainline/debian/ stretch nginx

下面这个我也不晓得干什么的,反正老外是这样写的

wget -qO - http://nginx.org/keys/nginx_signing.key | apt-key add -

更新一下让源生效

apt update

二、安装更新版本nginx

如果之前用apt命令安装了旧版本nginx,需要卸载掉才行

apt remove nginx-common

正式开始安装

apt install nginx

安装完成查看版本:

nginx -v

会列出Nginx OpenSSL相关配置文件路径…

查看nginx进程

ps aux | grep nginx
pgrep nginx

安装好的文件位置:

/usr/sbin/nginx  #主程序
/etc/nginx  #存放配置文件
/usr/share/nginx  #存放静态文件
/var/log/nginx  #存放日志
/etc/nginx/nginx.conf  #默认nginx配置文件

Nginx控制命令:

###启动
systemctl enable nginx
###重启
systemctl restart nginx
###停止
systemctl stop nginx
###也可以使用
/etc/init.d/nginx start # 启动Nginx服务
/etc/init.d/nginx stop # 停止Nginx服务
/etc/init.d/nginx  restart # 重启Nginx服务

增加 Nginx 虚拟主机

检查/etc/nginx/nginx.conf配置文件,确保文件中有:include /etc/nginx/conf.d/*.conf; 默认已经有了的。

然后在目录/etc/nginx/conf.d/下面新建文件site1.conf,site2.conf…文件名任意写,自己看明白就OK

Debian10的Nginx新增站点方法

在目录/etc/nginx/sites-available/下新增站点配置文件your_domain

nano /etc/nginx/sites-available/your_domain

示范如下

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;
 index index.html index.htm index.nginx-debian.html;

 server_name your_domain www.your_domain;

 location / {
 try_files $uri $uri/ =404;
 }
}

接下来,通过创建sites-enabled目录中的自定义配置文件的符号链接来启用这个服务器块:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

使用nginx -t测试Nginx文件中有没有语法错误,配置测试通过就可以systemctl restart nginx重新启动Nginx

Nginx配置支持PHP

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

或者

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

又或者

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

解决Nginx php-fpm配置有误引起的502错误

针对该问题的解决方案是,修改/etc/nginx/conf/vhosts下的conf文件,

将fastcgi_pass 127.0.0.1:9000;修改为fastcgi_pass unix:/run/php/php7.0-fpm.sock;

重启Nginx服务后,WEB访问依然报错502,继续定位分析。

在nginx error_log日志/var/log/nginx/error.log中出现了以下新的报错内容:

2017/07/29 11:24:47 [crit] 6114#0: *1 connect() to unix:/run/php/php7.2-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 183.14.134.xx, server: 112.74.89.xx, request: “GET / HTTP/1.1”, upstream: “fastcgi://unix:/run/php/php7.2-fpm.sock:”, host: “112.74.89.xx”

编辑文件/etc/php/7.2/fpm/pool.d/www.conf找到

listen.owner = www-data
listen.group = www-data
;listen.mode = 0660

修改为

;listen.owner = www-data
;listen.group = www-data
listen.mode = 0666

重启下Nginx和php

systemctl restart nginx
systemctl restart php7.2-fpm