Nginx四层反向代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx四层反向代理相关的知识,希望对你有一定的参考价值。

参考技术A 安装完成后启动nginx验证一下安装。

通过浏览器访问一下页面测试一下Nginx的安装。

备份一下 /etc/nginx/nginx.conf 文件,然后编辑此文件,内容如下:

上面的配置设置通过当前机器的2222端口,转发到目标主机的22端口,保存文件并重启 Nginx 服务

下面验证一下,通过ssh命令登录当前机器的2222端口,可以发现实际上是被转发到目标机器的22端口了。

Nginx四层代理配置负载均衡和动静分离

@[toc]

1.Nginx四层代理配置

首先准备好两台配置好Nginx7层反向代理配置的服务器(以Nginx作为负载均衡器,Tomcat作为应用服务器),但做四层代理时编译需要添加 --with-

1.stream模块

环境配置

主机 操作系统 IP地址 主要软件
Nginx服务器1(四层协议) CentOS 7.3 x86_64 192.168.19.10 nginx-1.12.0.tar.gz
Nginx服务器2(七层协议) CentOS 7.3 x86_64 192.168.19.11 nginx-1.12.0.tar.gz
Nginx服务器3(七层协议) CentOS 7.3 x86_64 192.168.19.18 nginx-1.12.0.tar.gz
Tomcat服务器1 CentOS 7.3 x86_64 192.168.19.17 apache-tomcat-7.0.54.tar.gz
Tomcat服务器2 CentOS 7.3 x86_64 192.168.19.19 apache-tomcat-7.0.54.tar.gz

2.Nginx四层代理配置步骤

1.配置好两台Nginx七层代理服务器

nginx

2.在四层代理的Nginx服务器上做相关配置

./configure --with-stream
vim /usr/local/nginx/conf/nginx.conf

和http同等级:所以一般只在http上面一段设置,
stream 

    upstream appserver 
        server 192.168.19.11:80 weight=1;
        server 192.168.19.18:80 weight=1;
    
    server 
        listen 8888;
        proxy_pass appserver;
    


http 
......

systemctl restart nginx #重启服务


3.测试结果

测试静态页面效果
浏览器访问 http://192.168.19.10:8888
浏览器访问 http://192.168.19.10:8888/error.jpg

Nginx四层代理访问动态页面
浏览器访问:http://192.168.19.10:8888/test/index.jsp

==总结
Nginx的动静分离==

location匹配用户访问的URL路径,根据正则表达式来判断用户访问请求的是静态页面还是动态页面
html,css,JavaScript,jpg,png…… 静态页面由nginx来处理
jsp,php…… 动态页面由后端应用服务来处理,动态配置在http块里配置。

==nginx反向代理分为2种==

基于7层的HTTP代理和MAIL代理,用于动静分离的场景,或者根据7层访问URL路径转发
upstream 服务器组名 
    server SERVER1IP:PORT;
    server SERVER2IP:PORT;
    ......


    location .*\\.jsp$ 
         proxy_pass http://服务器组名;
    


fastcgi_pass PHPSERVERIP:9000
-----------------------------
基于4层的TCP或者UDP代理 IP+端口,用于nginx作为前端负载均衡器时使用,仅用于转发访问请求给后端的web集群。
和http块同级别,一般配置在http块上面配置stream模块,安装时必须先开启stream模块--with-stream
stream 
    upstream 服务器组名 
        server SERVER1IP:PORT;
        server SERVER2IP:PORT;
        ......


    server 
        listen [IP:]PORT
        proxy_pass 服务器组名;
    

以上是关于Nginx四层反向代理的主要内容,如果未能解决你的问题,请参考以下文章

Nginx四层反向代理

LVS四层 VS Nginx七层反代(负载均衡)

Nginx实现反向代理负载均衡功能

4-1-面试必备-nginx实现反向代理配置与实战

nginx四层代理

08-nginx的反向代理缓存功能