nginx同时配置多组tcp反向代理和多组http反向代理

目录

需求背景:

问题分析:

[步骤一 如何配置一组tcp反向代理](#步骤一 如何配置一组tcp反向代理)

[步骤一 如何配置一组http反向代理](#步骤一 如何配置一组http反向代理)

步骤一如何同时配置一组tcp反向代理和一组http反向代理

步骤二、如何同时配置两组tcp反向代理和两组http反向代理

步骤三、如何同时配置多组tcp反向代理和多组http反向代理

总结:


需求背景:

nginx配置多组tcp反向代理和http反向代理,同时满足下面两个要求:

要求1:配置两组tcp反向代理组:

tcp组1:后端服务器ip为172.25.0.69和172.25.0.70,upstream端口为1088,监听端口为10188,tcp组2:后端服务器ip为172.26.0.79和172.26.0.80,upstream端口为1099,监听端口为10199;

要求2:配置两组http反向代理组:

http组1:后端服务器ip为172.26.0.89和172.26.0.90,upstream端口为3088,监听端口为4088,http组2:后端服务器ip为172.27.0.29和172.27.0.30,upstream端口为5088,监听端口为6088

问题分析:

上面只是以两组为例,如果更多组呢,如何配置起来更加灵活呢

使用nginx同时配置多组tcp反向代理和多组http反向代理,直接配置并不明朗,一步步配置就越来越清晰,如果到最终解决方式,可以直接跳到最后看结果,问题拆解:

1、如何配置一组tcp反向代理,如何配置一组http反向代理,

2、如何配置两组tcp反向代理,如何配置两组http反向代理

3、如何配置多组tcp反向代理,如何配置多组http反向代理

分三步,六个问题的解决来实现

步骤一 如何配置一组tcp反向代理

stream {

upstream tcp_group1 {

server 172.25.0.69:1088;

server 172.25.0.70:1088;

}

server {

listen 10188;

proxy_pass tcp_group1;

}

}

http {

}

验证结果:

步骤一 如何配置一组http反向代理

http {

upstream http_group1 {

server 172.26.0.89:3088;

server 172.26.0.90:3088;

}

server {

listen 4088;

location / {

proxy_pass http://http_group1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

验证结果:

步骤一如何同时配置一组tcp反向代理和一组http反向代理

将步骤一的一组tcp配置组和一组http配置组放一块就可以同时实现配置一组tcp反向代理和一组http反向代理

for tcp

stream {

upstream tcp_group1 {

server 172.25.0.69:1088;

server 172.25.0.70:1088;

}

server {

listen 10188;

proxy_pass tcp_group1;

}

}

for http

http {

upstream http_group1 {

server 172.26.0.89:3088;

server 172.26.0.90:3088;

}

server {

listen 4088;

location / {

proxy_pass http://http_group1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

验证结果:

了解了单独一组tcp反向代理和一组http反向代理之后,我们就直接配置同时实现两组tcp反向代理和两组http反向代理的实现

步骤二、如何同时配置两组tcp反向代理和两组http反向代理

for tcp

stream {

upstream tcp_group1 {

server 172.25.0.69:1088;

server 172.25.0.70:1088;

}

server {

listen 10188;

proxy_pass tcp_group1;

}

upstream tcp_group2 {

server 172.26.0.79:1099;

server 172.26.0.80:1099;

}

server {

listen 10199;

proxy_pass tcp_group2;

}

}

for http

http {

upstream http_group1 {

server 172.26.0.89:3088;

server 172.26.0.90:3088;

}

server {

listen 4088;

location / {

proxy_pass http://http_group1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

upstream http_group2 {

server 172.27.0.29:5088;

server 172.27.0.30:5088;

}

server {

listen 6088;

location / {

proxy_pass http://http_group2;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

验证结果:

步骤三、如何同时配置多组tcp反向代理和多组http反向代理

实现同时多组的话,你也可以仿照图中的红框做为一个配置单元,一个个地往nginx.conf添加,但是这样对于每一个tcp反向代理或者http反向代理的增删改,可能比较棘手些,尤其是想通过web前端来实现nginx的反向代理的配置的时候,这样对单个反向代理的操作不够灵活,可扩展性差,如何比较灵活地实现反向代理的增删改查呢

这个时候每一个反向代理的配置放到一个文件里,然后用include命令来包含加载就方便需要,修改的时候只修改对应反向代理的配置文件,删除的时候直接删除该文件即可

worker_rlimit_nofile 65535;

events {

worker_connections 65535;

}

for tcp

stream {

include tcp.d/*.conf;

}

for http

http {

include http.d/*.conf;

}

将tcp_group1.conf位置和内容如图,放到了tcp.d里,这样include tcp.d/*.conf就可以加载tcp组1的反向代理,同理,tcp_group2.conf,http_group1.conf,http_group2.conf放在http.d目录下,之后操作对应的文件就可以实现对应反向代理的更细的配置,如果想取消对应的反向代理,删除目录下对应名字文件即可

总结:

问题的解决主要是注意nginx命令,如upstream和stream的适用配置块,还有include命令的使用,使nginx的配置更加模块化,更加灵活

相关推荐
吴free4 分钟前
mac电脑wireshark快速实现http接口抓包
网络·测试工具·http·wireshark
艾希逐月25 分钟前
TCP数据的发送和接收
服务器·网络·tcp/ip
PanZonghui3 小时前
Centos项目部署之Nginx 的安装与卸载
linux·nginx
THMOM913 小时前
TinyWebserver学习(9)-HTTP
网络协议·学习·http
创小匠5 小时前
创客匠人视角下创始人 IP 打造与知识变现的底层逻辑重构
人工智能·tcp/ip·重构
en-route6 小时前
HTTP 缓存
网络协议·http·缓存
一只小鱼儿吖14 小时前
进程代理单窗口单IP技术:原理、应用与实现
网络·网络协议·tcp/ip
稳联技术14 小时前
Ethernet IP与Profinet共舞:网关驱动绿色工业的智慧脉动
网络·网络协议·tcp/ip
隆里卡那唔15 小时前
在dify中通过http请求neo4j时为什么需要将localhost变为host.docker.internal
http·docker·neo4j
charlee4415 小时前
nginx部署发布Vite项目
nginx·性能优化·https·部署·vite