酷班车-nodejs后端

2018-10-05  本文已影响0人  viva_la

Nginx反向代理Nodejs服务器

  1. 微信小程序服务器需要https服务,在此前提下需先为域名配置SSL证书

腾讯云免费一年证书申请地址 https://console.cloud.tencent.com/ssl

  1. 根据腾讯云实验室指导
  • 将nginx证书上传到服务器上
  • 配置nginx的配置文件
server {
        listen 443;
        server_name www.example.com; # 改为绑定证书的域名
        # ssl 配置
        ssl on;
        ssl_certificate 1_www.example.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
        ssl_certificate_key 2_www.example.com.key; # 改为自己申请得到的 key 文件的名称
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_pass http://127.0.0.1:8765;
        }
    }

遇到的问题

1.腾讯云域名的DNS解析很久失效,重新绑定到我的新的服务器上,一度以为是服务器问题。

  1. nodejs在本地跑的服务访问自己https://www.xx.com出现502。仔细一想是因为反向代理。肯定是把本地nodejs服务端口代理到nginx上,那nodejs就跑127.0.0.1本机,把定义的端口9999,让nginx代理即可。因此
server {
        listen 443;
        server_name www.example.com; # 改为绑定证书的域名
        # ssl 配置
        ssl on;
        ssl_certificate 1_www.example.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
        ssl_certificate_key 2_www.example.com.key; # 改为自己申请得到的 key 文件的名称
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {# 更换代理端口号,解决问题
            proxy_pass http://127.0.0.1:9999; 
        }
    }
上一篇下一篇

猜你喜欢

热点阅读