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负载均衡,动静分离的主要内容,如果未能解决你的问题,请参考以下文章