今天做了一个简单的实验,就是在自己的域名下挂上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中直接配置远程反向代理主机就是不工作。有了解的朋友可以留言相告。