一、配置nginx
1、安装ningx
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
安装依赖环境包
yum install -y pcre-devel zlib-devel open
创建运行用户、组
useradd -M -s /sbin/nologin nginx
ssl-devel gcc gcc-c++
上传nginx-1.15.9.tar.gz至/opt目录
cd /opt
tar xzvf nginx-1.15.9.tar.gz 解包
cd nginx-1.15.9/ 准备编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make j3 && make install 安装
make
路径优化
ln -s /usr/local/nginx/sbin/ng
添加 Nginx 系统服务
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
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
inx /usr/local/sbin/
chmod 754 /lib/systemd/system/nginx.service 给权限
systemctl enable nginx.service 开机启动
systemctl start nginx.service 启动nginx
nginx -t 检查nginx配置文件
二、在2台虚拟机上分别部署tomcat
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
上传所需要的安装包到 /opt
pache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm
查看java版本 java -version
rpm -ivh jdk-8u201-linux-x64.rpm 解jdk包
设置JDK的环境变量
vim /etc/profile.d/java.sh #/etc/profile.d/ 环境变量脚本目录
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 #输出指定java所需的类文件
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar #可执行文件的位置
export PATH=$JAVA_HOME/bi
source /etc/profile.d/java.sh 全局变量加载生效
java -version 再次查看版本会有所变化n:$PATH
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz 解包
mv apache-tomcat-9.0.16 /usr/local/tomcat #将解压后的包剪切到/usr/local 目录中,并改名为tomcat
ls /use/local/tomcat 查看
优化管理tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
启动、关闭tomcat
startup.sh 开启
ps -aux | grep 8080 检查开启
shutdown.sh 关闭
优化Tomcat
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
securerandom.source=file:/dev/urandom 修改117行
备份tomcat配置文件 cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak
三、配置tomcat1和2 动静分离配置
1、tomcat1配置
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>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>
2、tomcat1 添加虚拟主机配置
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" /> #新增shutdown.sh
startup.sh
配置tomcat环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
------------------------------
source /etc/profile.d/tomcat.sh
修改tomcat2中的server.xml文件,要求各tomcat实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN"> #22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1" #69行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
------------------------------
第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
第二个连接器默认监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器
修改各tomcat实例中的startup.sh和shutdown.sh文件,添加tomcat环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
#------------------------------
# Start Script for the CATALINA Server
#------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
#------------------------------
# Stop script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat2/bin/startup.sh
#------------------------------
# Start Script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
#------------------------------
# Stop script for the CATALINA Server
#------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
启动各tomcat中的/bin/startup.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
netstat -natp | grep java
浏览器访问测试
http://192.168.80.60:8080
http://192.168.80.60:8081
Nginx+Tomcat负载均衡、动静分离集群
Nginx应用
- Nginx是一款非常优秀的HTTP服务器软件
- 支持高达50000个并发连接数的响应
- 拥有强大的静态资源处理能力
- 运行稳定
- 内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力
Nginx负载均衡实现原理
- Nginx实现负载均衡是通过反向代理实现
代理方式
-
正向代理
代理的时客户端
-
反向代理
代理的时服务端
Nginx配置反向代理的主要参数
- upstream服务池名{}
- 配置后端服务器池,以提供响应数据
- proxy _pass http://服务池名
- 配置将访问请求转发给后端服务器池的服务器处理
Nginx动静分离原理
动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx静态处理优势
- Nginx处理静态页面的效率远高于Tomcat的处理能力
- 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
- Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
- Nginx处理静态资源的能力是Tomcat处理的6倍