Balanceo de carga de Nginx + Tomcat, implementación del entorno experimental de separación dinámica y estática

Balanceo de carga de Nginx + Tomcat, implementación del entorno experimental de separación dinámica y estática

Paquete de instalación

1. Entorno experimental

Tres hosts Centos7

Nginx 服务器:192.168.126.10
Tomcat服务器1:192.168.126.20
Tomcat服务器2:192.168.126.30

2. Pasos de implementación experimental

1. Implementar el balanceador de carga de Nginx

systemctl stop firewalld
setenforce 0
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
useradd -M -s /sbin/nologin nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持

--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
./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
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

2. Implementar 2 servidores de aplicaciones Tomcat

systemctl stop firewalld
setenforce 0
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
tar zxvf apache-tomcat-8.5.16.tar.gz
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 
netstat -ntap | grep 8080

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

同样的方法部署另外一台:

Inserte la descripción de la imagen aquí

3. Configuración de separación dinámica y estática

(1), configuración del servidor Tomcat1

mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

Inserte la descripción de la imagen aquí

vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
</Host>
重启服务:
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

Inserte la descripción de la imagen aquí

(2) Configuración del servidor Tomcat2

mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>

Inserte la descripción de la imagen aquí

vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
</Host>
重启服务:
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

Inserte la descripción de la imagen aquí

(3) Configuración del servidor Nginx

#准备静态页面和静态图片
echo '<html><body><h1>这是静态页面</h1></body></html>' > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cd  /usr/local/nginx/html/img

将kobe.jpg放入img目录中

Inserte la descripción de la imagen aquí

vim /usr/local/nginx/conf/nginx.conf
......
http {
    
    
......
	#gzip on;
	

	#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
	upstream tomcat_server {
    
    
		server 192.168.126.20:8080 weight=1;
		server 192.168.126.30:8080 weight=1;
	}
	
	server {
    
    
		listen 80;
		server_name www.chenwei.com;
	
		charset utf-8;
	
		#access_log logs/host.access.log main;
		
		#配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理
		location ~ .*.jsp$ {
    
    
			proxy_pass http://tomcat_server;
			#设置后端的Web服务器可以获取远程客户端的真实IP
			#设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为proxy_pass指令设置的主机名
			proxy_set_header HOST $host;
			#把$remote_addr赋值给X-Real-IP,来获取源IP
			proxy_set_header X-Real-IP $remote_addr;
			#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		
		#配置Nginx处理静态图片请求
		location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
    
    
			root /usr/local/nginx/html/img;
			expires 10d;
		}
		
		location / {
    
    
			root html;
			index index.html index.htm;
		}
......
	}
......
}

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

重启服务:systemctl restart nginx.service

4. Resultados de la prueba

Pruebe el efecto del
navegador de páginas estáticas visite http://192.168.126.10/
visite el navegador http://192.168.126.10/game.jpg

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Pruebe el efecto de equilibrio de carga, actualice constantemente el navegador para probar el
navegador, visite http://192.168.126.10/index.jsp

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51573771/article/details/112689541
Recomendado
Clasificación