nginx-常用配置
禁用ip访问
使用default_server和_实现禁用ip访问,如下配置达到禁用80端口ip访问的效果。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 444;
}
server {
listen 80;
listen [::]:80;
server_name www.xxx.cn;
rewrite ^(.*) https://$host$1 permanent;
}
解决Nginx出现403 forbidden (13: Permission denied)报错
由于启动用户和nginx工作用户不一致所致
- 查看nginx的启动用户,发现是nobody,而非是用root启动的
ps aux | grep "nginx: worker process" | awk'{print $1}'
- 将nginx.config的user改为和启动用户一致
vi conf/nginx.conf
权限问题,如果nginx没有web目录的操作权限,也会出现403错误
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
chmod -R 777 /data
chmod -R 777 /data/www/
配置ssl
nginx['ssl_certificate'] = "/root/gitlabca/server.crt"
nginx['ssl_certificate_key'] = "/root/gitlabca/server.key"
修改nginx配置文件,将80端口的访问切换到443端口。
server {
listen 80;
server_name www.szjxgs.cn;
location / {
root /home/web/ccpt_2_nf;
index index.html index.htm;
}
rewrite ^(.*) https://$server_name$1 permanent;
location = /50x.html {
root html;
}
}
443端口配置如下:
server {
listen 443;
server_name www.szjxgs.cn;
ssl on;
ssl_certificate cert/a.pem;
ssl_certificate_key cert/a.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /home/web/ccpt_2_nf;
index index.html index.htm;
}
}
其中ssl_certificate,ssl_certificate_key对应证书文件生成的key。
nginx添加监听不同端口的server时,需要重启。