之前在准备公众号后台的搭建,可是问题来了,微信公众号后台服务器URL地址只支持80和443端口而我仅有的一台服务器的80和443端口都被我的博客占用了,穷学生再供不起第二台服务器。于是我只有再寻求nginx反向代理的帮助,将所用东西配置好后我的nginx配置文件之这样的,在注释里有相应的语句解释。我的服务器系统是centos7,nginx配置文件地址为 /etc/nginx/conf.d/***.conf
server {
listen 80; #监听80端口
server_name www.wavedeng.com; #服务器域名
rewrite ^ https://$http_host$request_uri? permanent; #重写80端口为443端口,即重写http到https,permanent 代表发送301表示永久地址迁移
}
server{
listen 443 ssl; #监听https请求
server_name www.wavedeng.com; #服务器域名
ssl_certificate ssl/1_www.wavedeng.com_bundle.crt; #ssl证书crt文件或pem文件
ssl_certificate_key ssl/2_www.wavedeng.com.key; #ssl证书key文件
#所有路由为/wechat/开头的地址都传给localhost:3000,是我的微信后台本地地址
location /wechat/{
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
#其余路由传给localhost:5000,这里是我的个人网站本地地址
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
注意:
1.监听的对应路由如上面的 /wechat/ 一定要写成 /wechat/ 不能写成 /wechat具体原因在
nginx 之 proxy_pass详解blog.csdn.net
里有描述
2.在/etc/nginx/con.d/**.conf中修改你nginx的配置文件之后,首先使用
nginx -s reload
重新加载nginx配置(reload之后的配置并没有生效,需要重启nginx)
然后保证配置文件中location里面 proxy_pass中的地址端口暂时不被占用
使用
systemctl restart nginx
重启nginx之后,再开起location中proxy_pass中相应的服务。
同时之前开发的小游戏要上线了,由于这次的小游戏使用了websocket,我这台可怜的服务器也要配置wss,不过好在微信小游戏的后端端口没有限定在443,所以只需配置相应端口的wss就行了,在/etc/nginx/conf.d/文件目录下创建game.conf 内容如下
#map的作用在最下面的"nginx map使用方法"中查看
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server localhost:2000; #真正的websocket端口
}
server {
listen 8000 ssl;
server_name www.wavedeng.com;
ssl_certificate ssl/1_www.wavedeng.com_bundle.crt;
ssl_certificate_key ssl/2_www.wavedeng.com.key;
ssl_session_timeout 20m;
ssl_verify_client off;
location / {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
nginx 之 proxy_pass详解blog.csdn.net
一个服务器多用在荷载比较大情况下肯定是承受不住的,但是买多个服务器并备案配置对于学生的精力与财力都是极大的消耗,所以当一个服务器能够支持目前的荷载的情况下利用代理服务器的方式是个很好的选择。
原文地址