目录
Tomcat Server 1 IP:192.168.159.102
Tomcat Server 2 IP:192.168.159.103
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 [email protected]:/opt #将所需的压缩包在Tomcat1上传给Tomcat2 server,也可以自己直接将压缩包拉到/opt目录下
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#安装JDK
cd /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
#安装启动Tomcat
cd /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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。