nginx https ssl 配置 实现一个对外端口同时支持http和https

748 阅读1分钟
listen      8002;
listen      80;
listen      443 ssl;
server_name  jxh-api.zx1026.com;
root   "/www/wwwroot/wisdom-defend-php/public/";

ssl_certificate  /usr/local/nginx/ssl/8614893_jxh-api.zx1026.com.pem;# 改成你的证书的名字
ssl_certificate_key /usr/local/nginx/ssl/8614893_jxh-api.zx1026.com.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;


index index.php index.html;
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}
  • 添加ssl后 出现 文件上传接口 报错 更新后发现 linux 的temp文件目录权限不够。

  • ssl 可随意端口,浏览器有证书缓存,切换端口要清除


nginx实现一个对外端口同时支持http和https协议访问

进入nginx 目录 编译追加 --with-stream --with-stream_ssl_preread_module 2个模块

./configure --add-module=/mnt/nginx-http-flv-module-master --with-http_ssl_module --with-stream --with-stream_ssl_preread_module

make

make 是编译 如果 make && install是编译并安装 会覆盖已经安装的nginx,那就GG了

  • make 编译后 将在objs目录下 生成新的文件nginx(是个文件)

  • 保险起见 备个份,不然不执行也可以

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

移动 nginx 到nginx 的sbin目录对原有的进行覆盖 (一个是nginx源码文件目录(源码编译安装后才能使用),一个是nginx程序的目录)

mv objs/nginx /usr/local/nginx/sbin/