文章目录
- [1. 配置反向代理](#1. 配置反向代理)
-
- [1.1 前置准备](#1.1 前置准备)
- [1.2 代理服务器配置](#1.2 代理服务器配置)
- [1.3 真实服务器配置](#1.3 真实服务器配置)
- [1.4 客户机配置](#1.4 客户机配置)
- [2. Tomcat 多实例部署](#2. Tomcat 多实例部署)
-
- [2.1 部署JDK](#2.1 部署JDK)
- [2.2 设置JDK环境变量](#2.2 设置JDK环境变量)
- [2.3 部署Tomcat服务](#2.3 部署Tomcat服务)
- [2.4 路径启动](#2.4 路径启动)
- [3. Nginx联动Tomcat实现动静分离、负载均衡](#3. Nginx联动Tomcat实现动静分离、负载均衡)
-
- [3.1 基本原理](#3.1 基本原理)
- [3.2 前置准备](#3.2 前置准备)
- [3.3 配置nginx1实现四层代理,负载均衡](#3.3 配置nginx1实现四层代理,负载均衡)
- [3.4 配置nginx2\3实现七层代理,动静分离](#3.4 配置nginx2\3实现七层代理,动静分离)
- [3.5 Tomcat配置,作为动态资源服务器](#3.5 Tomcat配置,作为动态资源服务器)
- [3.6 测试](#3.6 测试)
1. 配置反向代理
1.1 前置准备
bash
#所需环境
192.168.67.100 #nginx代理服务器
192.168.67.101 #客户机
192.168.67.102 #真实服务器
1.2 代理服务器配置
bash
vim /apps/nginx/conf/nginx.conf
#编辑主配置文件
#在http块中添加
include /apps/nginx/conf.d/*.conf
bash
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 真实服务器配置
bash
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux
bash
yum install httpd -y #安装服务
cd /var/www/html
echo "Hi~" > index.html #主页内容
systemctl start httpd #开启服务
bash
vi /etc/hosts
#添加地址映射
192.168.67.100 www.pc.com
1.4 客户机配置
bash
vim /etc/hosts
192.168.67.100 www.pc.com
测试
客户机访问代理服务器
bash
curl www.pc.com
2. Tomcat 多实例部署
2.1 部署JDK
bash
#所需安装包
apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
2.2 设置JDK环境变量
bash
#查看全局配置文件
vim /etc/profile
bash
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环境变量
bash
source /etc/profile.d/java.sh
#调用Java脚本
java -version
#查看当前JDK版本
2.3 部署Tomcat服务
bash
cd /opt
tar xf apache-tomcat-9.0.16.tar.gz
#解压tomcat源码包
bash
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 ,并且改名,方便管理
bash
#更改tomcat1、2、3 server.xhl文件
vi /usr/local/tomcat1/conf/server.xml
重复操作
bash
#修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
bash
#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
bash
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 路径启动
bash
#绝对路径启动
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
/usr/local/tomcat3/bin/startup.sh
ss -natp |grep java
#查看进程
bash
#网页启动
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 前置准备
bash
#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实现四层代理,负载均衡
bash
systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux策略
bash
#编译安装nginx并加入systemd服务
#依赖
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建管理用户
useradd -M -s /sbin/nologin nginx
bash
#编译安装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/
bash
#添加到系统服务中
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
#查看运行状态
bash
#配置负载均衡
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
#重新加载
bash
ss -natp |grep nginx
#查看是否正常运行
3.4 配置nginx2\3实现七层代理,动静分离
nginx2和3配置基本相同,主页文件相同名字,不同内容的文本和静态网页,用于测试负载均衡
bash
#前置准备
systemctl disable firewalld --now
setenforce 0
#yum安装nginx
yum -y install epel-release.noarch -y
yum -y install nginx
#如果开启了httpd服务关了,不然会导致nginx无法开启
#开启服务
systemctl start nginx
bash
vim /etc/nginx/nginx.conf
#编辑主配置文件
bash
#添加并编辑子配置文件
touch conf.d/scj.conf
vim conf.d/scj.conf
bash
nginx -t
nginx -s reload
#重新加载
bash
#静态页面
cd /usr/share/nginx/html
mkdir scj
echo "This is nginx2 ,from scj" > scj/index.html
3.5 Tomcat配置,作为动态资源服务器
bash
#前置准备
systemctl stop firerwalld
setenforce 0
#当前已经部署了tomcat多实例
#详情见上
bash
#准备动态资源
mkdir /usr/local/tomcat1/webapps/test
mkdir /usr/local/tomcat2/webapps/test
mkdir /usr/local/tomcat3/webapps/test
#创建动态资源根目录
bash
#创建动态页面
#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>
bash
#重启服务
/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 测试
bash
#访问静态资源
浏览器访问 http://192.168.67.100/scj/index.html
多次刷新
bash
#访问动态资源
http://192.168.67.100/test/index.jsp
多次刷新