nginx的反向代理类型
七层反向代理
基于http https等七层应用协议的代理转发,可以根据用户请求访问的URL路径来转发请求,通常用于做动静分离等应用场景。
配置:
1.安装一台nginx服务器,两个tomcat服务器
安装nginx
创建nginx用户
useradd nginx
下载依赖环境
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
上传解压软件包
tar -xf nginx-1.26.2.tar.gz
配置软件模块
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream
编译安装
make -j 2 && make install
将 Nginx 添加到 PATH
vi /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin
source /etc/profile
网页访问
安装tomcat
1.上传软件包
2.安装jdk
rpm -ivh jdk-8u391-linux-x64.rpm
设置JDK环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0-x64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile.d/java.sh
3.安装启动Tomcat
tar -xf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
4.配置多实例
配置虚拟主机
tar xf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2
配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
source /etc/profile.d/tomcat.sh
修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
修改 每个tomcat中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
启动每个tomcat 实例
查看端口号
netstat -nltp | grep java
为每个tomcat实例创建测试页面
网页访问
2.nginx配置修改
upstream tomcat_web {
server 192.168.110.50:8081 weight=1;
server 192.168.110.50:8082 weight=1;
server 192.168.110.60:8081 weight=1;
server 192.168.110.60:8082 weight=1;
}
location ~ .*\.jsp$ {
proxy_pass http://tomcat_web;
proxy_set_header HOST $host;
proxy_set_header X_Real_IP $remote_addr;
proxy_set_header X_Forwarded_For $proxy_add_x_forwarded_for;
}
测试
访问动态页面
刷新
刷新
刷新
访问静态页面
由此可见七层反向代理可以实现动静分离
四层反向代理
四层反向代理:基于IP 端口实现的代理转发,可以根据用户请求的IP或端口来转发请求,通常用于做 网络接入层的负载均衡器 等应用场景。
配置:
四层反向代理需要添加代理模块--with-stream
如没有配置需要重新编译nginx,添加四层代理模块--with-stream
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream
新生成的二进制文件
备份原二进制文件
cd /usr/local/nginx/sbin/
mv nginx nginx.bak
将新生成的二进制文件复制到nginx里
mv nginx /usr/local/nginx/sbin/nginx
重载
修改配置文件
vi /usr/local/nginx/conf/nginx.conf
stream {
upstream tomcat_web {
server 192.168.110.50:8081 weight=1;
server 192.168.110.60:8081 weight=1;
server 192.168.110.50:8082 weight=1;
server 192.168.110.60:8082 weight=1;
}
server {
listen 8080;
proxy_pass tomcat_web;
}
}
重载
kill -1 pid
网页访问