阅读 228

集群之Nginx+Tomcat实现负载均衡、动静分离

目录

Nginx 负载均衡实现原理

Nginx 动静分离实现原理

搭建过程:

部署 Nginx 负载均衡服务器

部署两台 Tomcat 应用服务器

 

动静分离配置 

Tomcat Server 1  IP:192.168.159.102


 配置服务

Tomcat Server 2  IP:192.168.159.103

配置服务 

 Nginx server配置

静态页面配置

测试

测试静态页面效果

测试负载均衡效果,不断刷新浏览器测试

Nginx 负载均衡实现原理

1、Nginx 实现负载均衡是通过反向代理实现
2、Nginx 配置反向代理的主要参数



Nginx 动静分离实现原理

1、动静分离原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由 Nginx 提供服务,动态资源由 Nginx 转发至后端。
2、Nginx 静态处理优势
——Nginx 处理静态页面的效率远高于 Tomcat 的处理能力
——若 Tomcat 的请求量为1000次,则 Nginx 的请求量为6000次
——Tomcat 每秒的吞吐量为0.6M,Nginx 的每秒吞吐量为3.6M
——Nginx 处理静态资源的能力是 Tomcat 处理的6倍

搭建过程:

Nginx 服务器:192.168.159.101
Tomcat 服务器1:192.168.159.102
Tomcat 服务器2:192.168.159.103

 三台服务器 环境准备[root@localhost ~]# systemctl stop firewalld#关闭防火墙[root@localhost ~]# systemctl disable firewalld#开机不自启[root@localhost ~]# setenforce 0#关闭保护

部署 Nginx 负载均衡服务器

编译安装nginx服务#安装所需开发包和编译环境、编译器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-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module#指定安装路径、指定用户名、组名、启用模块以支持统计状态#编译及安装make && make install#软链接便于系统识别nginx操作命令ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/#添加nginx系统服务echo '[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' > /lib/systemd/system/nginx.service#赋权及开启服务、开启开机自启chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

部署两台 Tomcat 应用服务器

 

#scp apache-tomcat-9.0.16.tar.gz root@192.168.159.103:/opt    #将所需的压缩包在Tomcat1上传给Tomcat2 server,也可以自己直接将压缩包拉到/opt目录下#关闭防火墙systemctl stop firewalld
systemctl disable firewalld
setenforce 0
 #安装JDKcd /opt
rpm -qpl jdk-8u201-linux-x64.rpm 
rpm -ivh jdk-8u201-linux-x64.rpm 
java -version 
#设置JDK环境变量echo 'export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar                                     
          export PATH=$JAVA_HOME/bin:$PATH' > /etc/profile.d/java.sh
 
 
source /etc/profile 
#安装启动Tomcatcd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat# 启动/usr/local/tomcat/bin/startup.sh

 

动静分离配置 

Tomcat Server 1  IP:192.168.159.102

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/lic[root@localhost ~]# vim /usr/local/tomcat/webapps/lic/index.jsp 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test2 page</title></head><body><% out.println("动态页面:ciao");%></body></html>

 配置服务

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml 
 <Host name="tomcat1" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
         <Context docBase="/usr/local/tomcat/webapps/lic" path="" reloadable="true" />
 </Host>
 
 #配置详解Host name :主机名appBase : Tomcat程序工作目录,相对路径为webapps,绝对路为/usr/local/tomcat/webapps
unpackWARs :tomcat在webapps文件夹中发现war包文件时,是否自动将其解压autoDeploy :设为true,则web.xml发生变化时,tomcat自动重新部署程序。实现这个功能必需允许后台处理xmlvalidation :是否开启对XML文件的验证xmlNamespaceAware :是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验docBase : wEB应用的目录(本地路径)path:设置访问的URI为WEB应用的根目录(URL路径),""表示默认,加载系统中自带的类(class文件)reloadable :是否在程序有改动时重新载入



Tomcat Server 2  IP:192.168.159.103

 

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/lic[root@localhost ~]# vim /usr/local/tomcat/webapps/lic/index.jsp 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test2 page</title></head><body><% out.println("动态页面:hello");%></body></html>

配置服务 

165行 插入

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml 
    <Host name="tomcat2" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
         <Context docBase="/usr/local/tomcat/webapps/lic" path="" reloadable="true" /></Host>

#重启服务[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh

 Nginx server配置

静态页面配置

[root@localhost ~]# echo '<html><body><h1>这是默认目录静态页面</h1></body></html>' > /usr/local/nginx/html/index.html[root@localhost ~]# cat /usr/local/nginx/html/index.html   <html><body><h1>这是默认目录静态页面</h1></body></html>[root@localhost ~]# mkdir /usr/local/nginx/html/tupian#新建存放图片的目录,拖入图片[root@localhost ~]# cd /usr/local/nginx/html/tupian[root@localhost tupian]# rz -E
rz waiting to receive.配置Nginx服务[root@localhost tupian]# vim /usr/local/nginx/conf/nginx.conf #gzip  on;
         upstream tomcat_server {
           server 192.168.159.102:8080 weight=1;
           server 192.168.159.103:8080 weight=1;
 #配置负载均衡服务器列表,weight参数表示权重,权重越高,被分配到的概率越大 
         }
  
      server {
          listen       80;
          server_name  www.accp.com;
          
          charset utf-8;
          
          #access_log  logs/host.access.log  main;
          
          location ~ .*.jsp$ {
                  proxy_pass http://tomcat_server;
                  proxy_set_header HOST $host;
                     
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
          
          
                  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
                          root /usr/local/nginx/html/tupian;
                          expires 10d;
        }
          
          location / { 
             root   html;
              index  index.html index.htm;   
        }[root@localhost ~]# systemctl restart nginx

测试

测试静态页面效果


                 浏览器访问http://192.168.159.101/
                 浏览器访问http://192.168.159.101/gougou.jpg

 

测试负载均衡效果,不断刷新浏览器测试


  浏览器访问http://192.168.159.101/lic/index.jsp 

 

 


标签:负载,Tomcat,nginx,root,Nginx,usr,local,localhost
来源: https://blog.csdn.net/Liangheng32/article/details/121431310


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐