今天做了一个简单的实验,就是在自己的域名下挂上weibo.com服务。当然如果按照此方式,一般可以挂上各种其它网站的服务。最简单的方法就是使用Nginx建一个反向代理。然而如果流量太大,可能需要不同IP的反向代理服务器。随后在这些反向代理之前挂一个负载均衡服务器。大致结构如下:
Nginx反向代理设置
首先我们在反向代理服务器上配置Nginx的反向代理。配置如下:
server { listen 8111; server_name _; location / { proxy_pass https://weibo.com; proxy_hide_header X-Frame-Options; proxy_http_version 1.1; proxy_set_header Connection ""; } }
如果我们想要配置三个节点反向代理服务器,只需要准备三台服务器,开启Nginx并使用相同的配置文件即可。
Nginx负载均衡设置
接下来我们基于以上3台反向代理服务器,配置一台均衡负载服务器。配置如下:
upstream weibo{ server localhost:8081; server localhost:8082; server localhost:8083; hash $request_uri; } server { listen 8080; server_name localhost; location / { proxy_pass http://weibo; proxy_hide_header X-Frame-Options; } } server { listen 8081; server_name localhost; location / { proxy_pass http://192.168.0.100:8111; proxy_hide_header X-Frame-Options; } } server { listen 8082; server_name localhost; location / { proxy_pass http://192.168.0.101:8111; proxy_hide_header X-Frame-Options; } } server { listen 8083; server_name localhost; location / { proxy_pass http://192.168.0.102:8111; proxy_hide_header X-Frame-Options; } }
此配置中有一个疑问,为什么要在创建三个local server并指向反向代理?为什么不能直接在upstream配置远程的反向代理主机地址?这个我也不是很清楚,但是在upstream中直接配置远程反向代理主机就是不工作。有了解的朋友可以留言相告。
扫码联系船长