(目录)

一、配置准备

  • 首先准备好两台配置好Nginx7层反向代理配置的服务器(以Nginx作为负载均衡器,Tomcat作为应用服务器),但做四层代理时编译需要添加 --with-stream模块
  • 环境配置
主机 操作系统 IP地址 主要软件
Nginx服务器1 CentOS 7.3 x86_64 192.168.80.10 nginx-1.12.2.tar.gz
Nginx服务器2 CentOS 7.3 x86_64 192.168.80.20 nginx-1.12.0.tar.gz
Nginx服务器3 CentOS 7.3 x86_64 192.168.80.30 nginx-1.12.0.tar.gz
Tomcat服务器1 CentOS 7.3 x86_64 192.168.80.40 apache-tomcat-7.0.54.tar.gz
Tomcat服务器2 CentOS 7.3 x86_64 192.168.80.50 apache-tomcat-7.0.54.tar.gz

image.png

二、Nginx四层代理配置步骤

2.1、配置好两台Nginx七层代理服务器

具体操作看:https://blog.51cto.com/z0008/4936302 image.png

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

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

和http同等级:所以一般只在http上面一段设置,
stream {
	
    upstream appserver {
		server 192.168.80.20:80 weight=1;
		server 192.168.80.30:80 weight=1;
    }
    server {
        listen 8080;
        proxy_pass appserver;
    }
}

http {
......

systemctl restart nginx #重启服务

image.png

3.3、测试结果

测试静态页面效果
浏览器访问 http://192.168.80.10:8080
浏览器访问 http://192.168.80.10:8080/caocao.jpg

image.png

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

image.png

三、总结

1、Nginx的动静分离

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

2、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 服务器组名;
    }
}