nginx反向代理gin并实现多线路备用节点
虚线箭头代表或,也就是说通过nginx的反向代理,可让客户端访问到你的多个服务,但是在客户端呈现出来的就像一个整体。这里就不仅限于这篇文章的gin了,你的内部可以有php构建的后端,java构建的后端,go构建的后端,其实这都无所谓,你整理好过后(uri不会出现冲突的现象),全部都可以通过nginx反向代理
上配置
配置前提为gin主节点监听端口为8000,两个备用节点监听端口为8001,8002
upstream gin_server{
#主节点
server 127.0.0.1:8000;
server 127.0.0.1:8001 backup;#备胎节点
server 127.0.0.1:8002 backup;#备胎节点
}
server{
#这里假设你想通过前缀/example访问你的
location /example/{
#尝试把uri传给后端
try_files $uri $uri/ @backend;
}
location @backend{
#把uri中的example 前缀通过重写给洗掉,这样传到后端你的节点上才是你节点的uri
rewrite ^/example/(.*)$ /$1 break;
proxy_pass http://webmanager;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}