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

2024-03-15 20:12

本文主要是介绍nginx同时配置多组tcp反向代理和多组http反向代理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

需求背景:

问题分析:

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

步骤一 如何配置一组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的配置更加模块化,更加灵活

 

这篇关于nginx同时配置多组tcp反向代理和多组http反向代理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813131

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。