Web服务------Nginx四层代理+Tomcat负载均衡,动静分离

Posted 下雨天的放羊娃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web服务------Nginx四层代理+Tomcat负载均衡,动静分离相关的知识,希望对你有一定的参考价值。

一.Nginx负载均衡模式

轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务 ,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响
轮询权重值
weigh的值越大分配到的权限概率越高,主要用于后端每台服务器性能不均匀情况,或者仅仅为在主从的情况下设置不同的权重值,达到合理利用主机资源
源地址哈希
ip_ hash每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在session共享问题
fair
Hweight. ip hash更智能的负载均衡算法,根据页面大小和加载时间长短智能进行负载均衡,根据后端服务器响应时间来分配请求。nginx不支持fair,需要使用的话必须安装upstream_ fair模块
url_hash
按访问ur的哈希结果来分配请求,使每个url定向到一台后端服务器,可以进一步提高 后端缓存服务器的效率例如: hash $request _uriconsistent; #基于用户请求的uri做hash
least_conn
最小连接调度算法优先将客户端清求调度到当前连接最少的服务器

二.Nginx+Tomcat负载均衡,动静分离配置

1.部署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加密功能
--with-stream 										#启用stream模块,提供4层调度

在这里插入图片描述

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

在这里插入图片描述

2.部署2台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

在这里插入图片描述

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

在这里插入图片描述
另外一太Tomcat应用服务器配置同理,这里省略。

3.动静分离配置

3.1 Tomcat1 server 配置

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 test1 page</title>   #指定为 test1 页面
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

在这里插入图片描述

vim /usr/local/tomcat/conf/server.xml
#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true">
	</Context>
</Host>

在这里插入图片描述

/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

在这里插入图片描述

Tomcat2 server 配置与Tomcat1 server配置相同,这里省略

3.2 Nginx server 配置

echo '<html><body><h1>这是静态页面</h1></body></html>' > /usr/local/nginx/html/index.html

在这里插入图片描述

vim /usr/local/nginx/conf/nginx.conf
Nginx 四层代理配置:和http同等级,所以一般只在http上面一段设置,
stream {
		upstream appserver{
		server 192.168.121.33:8080 weight=1;
		server 192.168.121.44:8080 weight=1;
		 }
    server {
        listen 8080;
        proxy_pass appserver;
    }
}

在这里插入图片描述

systemctl restart nginx

在这里插入图片描述

4.测试效果

测试静态页面效果
浏览器访问 http://192.168.121.55/
测试负载均衡效果,等一段时间后,两次之间需要有间隔,刷新浏览器测试
浏览器访问 http://192.168.121.55:8080

在这里插入图片描述
在这里插入图片描述

以上是关于Web服务------Nginx四层代理+Tomcat负载均衡,动静分离的主要内容,如果未能解决你的问题,请参考以下文章

nginx四层代理

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

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

nginx四层代理

nginx四层代理

Nginx入门简介和反向代理负载均衡动静分离理解