1、错误信息
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/vhost/api.conf:16
2、问题分析
出现以上错误的过程是,我将nginx迁移到一部新机器,新机器的nginx版本是1.15.8,旧机器的版本是1.12.0。
其实错误信息也是比较明显了,不推荐使用ssl,而是使用listen …ssl
看了一些相关的帖子,1.15之后的版本都是推荐listen …ssl
3、配置修改
其实就是把原有的ssl on配置信息去掉就好,然后使用listen 443 ssl 代替即可
server {
#listen 443; 修改该行信息,如下即可
listen 443 ssl;
server_name xxx.xxxx.com;
#ssl on; 注释该行信息
index index.html;
ssl_certificate /usr/local/nginx/cert/api/xxx.pem;
ssl_certificate_key /usr/local/nginx/cert/api/xxx.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 / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
expires off;
sendfile off;
proxy_pass http://xxx.xxx.com;
}
}
4、重新reload配置
在nginx的sbin目录下,执行./nginx -s reload