文章目录
- 1. 配置反向代理
- 1.1 前置准备
- 1.2 代理服务器配置
- 1.3 真实服务器配置
- 1.4 客户机配置
- 2. Tomcat 多实例部署
- 2.1 部署JDK
- 2.2 设置JDK环境变量
- 2.3 部署Tomcat服务
- 2.4 路径启动
- 3. Nginx联动Tomcat实现动静分离、负载均衡
- 3.1 基本原理
- 3.2 前置准备
- 3.3 配置nginx1实现四层代理,负载均衡
- 3.4 配置nginx2\3实现七层代理,动静分离
- 3.5 Tomcat配置,作为动态资源服务器
- 3.6 测试
1. 配置反向代理
1.1 前置准备
#所需环境
192.168.67.100 #nginx代理服务器
192.168.67.101 #客户机
192.168.67.102 #真实服务器
1.2 代理服务器配置
vim /apps/nginx/conf/nginx.conf
#编辑主配置文件
#在http块中添加
include /apps/nginx/conf.d/*.conf
vim /apps/nginx/conf.d/pc.com
#编辑子配置文件
server{
listen 192.168.67.100:80;
server_name www.pc.com;
location / {
root /apps/nginx/html/pc;
proxy_pass http://192.168.67.102;
}
}
nginx -t
nginx -s reload
#重新加载
1.3 真实服务器配置
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux
yum install httpd -y #安装服务
cd /var/www/html
echo "Hi~" > index.html #主页内容
systemctl start httpd #开启服务
vi /etc/hosts
#添加地址映射
192.168.67.100 www.pc.com
1.4 客户机配置
vim /etc/hosts
192.168.67.100 www.pc.com
测试
客户机访问代理服务器
curl www.pc.com
2. Tomcat 多实例部署
2.1 部署JDK
#所需安装包
apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
2.2 设置JDK环境变量
#查看全局配置文件
vim /etc/profile
vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
#java家目录
export JRE_HOME=$JAVA_HOME/jre
#jre家目录
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#指向java工具包和环境包
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#java环境变量
source /etc/profile.d/java.sh
#调用Java脚本
java -version
#查看当前JDK版本
2.3 部署Tomcat服务
cd /opt
tar xf apache-tomcat-9.0.16.tar.gz
#解压tomcat源码包
cp -r apache-tomcat-9.0.16/ /usr/local/tomcat1
cp -r apache-tomcat-9.0.16/ /usr/local/tomcat2
cp -r apache-tomcat-9.0.16/ /usr/local/tomcat3
#将tomcat复制到usr/local ,并且改名,方便管理
#更改tomcat1、2、3 server.xhl文件
vi /usr/local/tomcat1/conf/server.xml
重复操作
#修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
#tomcat1
vi /usr/local/tomcat1/bin/startup.sh
#添加
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1
vi /usr/local/tomcat1/bin/shutdown.sh
#添加内容
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1
重复上述操作
2.4 路径启动
#绝对路径启动
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
/usr/local/tomcat3/bin/startup.sh
ss -natp |grep java
#查看进程
#网页启动
192.168.67.102:8081
192.168.67.102:8082
192.168.67.102:8083
3. Nginx联动Tomcat实现动静分离、负载均衡
3.1 基本原理
服务端接收来自客户端的请求中,包含静态资源和动态资源,静态资源由Nginx进行处理,动态资源Nginx转发至后端由tomcat负责处理。
3.2 前置准备
#tomcat多实例
192.168.67.102:8081
192.168.67.102:8082
192.168.67.102:8083
#四层实现负载均衡
nginx1 192.168.67.100 #用性能最好的一台
#七层实现动静分离
nginx2 192.168.67.101
nginx3 192.168.67.103
#客户机
192.168.67.104
3.3 配置nginx1实现四层代理,负载均衡
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux策略
#编译安装nginx并加入systemd服务
#依赖
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建管理用户
useradd -M -s /sbin/nologin nginx
#编译安装ngnix
cd /opt
#解压缩软件包
tar -zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0
#加入源码包
#搭建编译环境
./configure \
--prefix=/apps/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 -j2 && make install
#编译并安装
#软连接 添加到环境变量中
ln -s /apps/nginx/sbin/nginx /usr/local/
#添加到系统服务中
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
systemctl daemon_reload
chmod 754 /lib/systemd/system/nginx.service
#启动nginx
systemctl start nginx
systemctl status nginx
#查看运行状态
#配置负载均衡
vim /apps/nginx/conf/nginx.conf
...
#写在http部分上面
stream {
upstream myserver {
server 192.168.67.101:80 weight=1;
server 192.168.67.103:80 weight=1;
}
server {
listen 80;
proxy_pass myserver;
}
}
nginx -t
nginx -s reload
#重新加载
ss -natp |grep nginx
#查看是否正常运行
3.4 配置nginx2\3实现七层代理,动静分离
nginx2和3配置基本相同,主页文件相同名字,不同内容的文本和静态网页,用于测试负载均衡
#前置准备
systemctl disable firewalld --now
setenforce 0
#yum安装nginx
yum -y install epel-release.noarch -y
yum -y install nginx
#如果开启了httpd服务关了,不然会导致nginx无法开启
#开启服务
systemctl start nginx
vim /etc/nginx/nginx.conf
#编辑主配置文件
#添加并编辑子配置文件
touch conf.d/scj.conf
vim conf.d/scj.conf
nginx -t
nginx -s reload
#重新加载
#静态页面
cd /usr/share/nginx/html
mkdir scj
echo "This is nginx2 ,from scj" > scj/index.html
3.5 Tomcat配置,作为动态资源服务器
#前置准备
systemctl stop firerwalld
setenforce 0
#当前已经部署了tomcat多实例
#详情见上
#准备动态资源
mkdir /usr/local/tomcat1/webapps/test
mkdir /usr/local/tomcat2/webapps/test
mkdir /usr/local/tomcat3/webapps/test
#创建动态资源根目录
#创建动态页面
#tomcat1
vi /usr/local/tomcat1/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>
#创建动态页面
#tomcat2
vi /usr/local/tomcat2/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.test1.com");%>
</body>
</html>
#tomcat3
vi /usr/local/tomcat3/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test3 page</title>
</head>
<body>
<% out.println("动态页面 3,http://www.test1.com");%>
</body>
</html>
#重启服务
/usr/local/tomcat1/bin/shutdown.sh
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/shutdown.sh
/usr/local/tomcat2/bin/startup.sh
/usr/local/tomcat3/bin/shutdown.sh
/usr/local/tomcat3/bin/startup.sh
ss -natp |grep java
#查看运行情况
3.6 测试
#访问静态资源
浏览器访问 http://192.168.67.100/scj/index.html
多次刷新
#访问动态资源
http://192.168.67.100/test/index.jsp
多次刷新