看了自问自答的图灵机器人,想在微信的小程序上搭个能自我聊天,或者查询的小机器人,可是,微信只支持https,而图灵机器人提供的接口只支持http接口,所以只能在中间搭个中转的服务器咯。
一、准备
服务器的话,拿出我那台吃灰的ecs。服务器端的话,还是用我比较了解的node,再配上Nginx反向代理。
既然要https,那么证书等这一步也是不能少的。阿里云上正好也有免费的证书提供下载。
首先到证书控制台,点击右上角的购买证书
品牌选择Symantec,保护类型选择一个证书,此时有出现了免费型DV SSL这个选项,选择并购买。
买完这个证书后,会回到证书控制台,对该证书进行补全处理。
等待十分钟左右,证书就好啦。
点击下载,进行证书,私钥公钥的下载。
选择Nginx,点击下载。
下载解压后,我们得到两个文件,
文章后面的配置可以作为参考。
这样我们就准备好啦,开始配置Nginx。
二、Nginx配置
先上传key,在Nginx安装目录下(/etc/Nginx)下新建了一个cert的文件夹,再使用rz命令将这两个文件读到服务器上去(上传再解压一样)。
我的Nginx一开始装好了,这儿就不再演示了。首先到根目录,修改配置文件。
cd /etc/Nginx/sites-available/ vi default
server { listen 80; listen 443; ssl on; server_name www.zhuyuntao.com; ssl_certificate /etc/Nginx/cert/215067043560468.pem; ssl_certificate_key /etc/Nginx/cert/215067043560468.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; location / { proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection ""; proxy_cache_bypass $http_upgrade; 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_set_header X-Nginx-Proxy true; proxy_pass http://127.0.0.1:3000; } }
这样就好了,当然ssl_certificate和ssl_certificate_key不要填错反了,server_name记得改成自己的域名,proxy_pass改成自己node程序的地址。
注:如果有问题的化,记得检查下80和443端口是否被其他程序占用了。
三、测试与修改
测试下,打开https://www.zhuyuntao.com/地址,可以正常打开,https就生效了。倘若我们使用http登录,发现出现了400报错,如下:
The plain HTTP request was sent to HTTPS port,大概的意思就是http请求被发送到了https端口了。
http与https共存
我们继续修改配置,将刚才第二行listen 443和第三行ssl on合并成(listen 80别丢了):
listen 443 ssl;
此时再测试时,http和https均可以访问。
强制https
我们只要将http请求跳转到https上就行了。继续在第一份的配置之上修改。
首先删除第一行的listen 80。
在文件最前方新增一个新的server,
server { listen 80; server_name www.zhuyuntao.com return 301 https://$server_name$request_uri; }
保存后,service Nginx restart,重启下Nginx,http就能跳转到https上啦。
好了,下面开始玩我的小机器人啦。
原文链接:https://www.f2er.com/nginx/454303.html