实际测试环境
机器系统 | 机器IP | 部署的服务 |
centos | 192.168.38.34 | 2个tomcat |
Ubuntu | 192.168.38.33 | nginx |
环境描述:
准备两台机器,一个作为两台tomcat服务器,IP为:192.168.38.34;另外一个作为nginx服务器,IP为:192.168.38.33。
客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端;如果为动态内容,则由nginx反代至后端的Tomcat服务器。
tomcat部署
- 下载
cd /usr/src
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
- 创建两个目录,解压
cd /usr/local/
mkdir tomcat{1,2}
cd /usr/src/
tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/tomcat1
tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/tomcat2
- 创建软连接
cd /usr/local/tomcat1
ln -s apache-tomcat-9.0.8/ tomcat1
cd /usr/local/tomcat2
ln -s apache-tomcat-9.0.8/ tomcat2
- 创建测试目录并创建测试文件
mkdir /usr/local/tomcat1/tomcat1/webapps/test
mkdir /usr/local/tomcat2/tomcat2/webapps/test
cd /usr/local/tomcat1/tomcat1/webapps/test
vi index.jsp
cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("1111111111");
%>
</body>
</html>
cd /usr/local/tomcat2/tomcat2/webapps/test
vi index.jsp
cat index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("2222222222");
%>
</body>
</html>
- 修改tomcat2的端口,否则端口起冲突。配置文件为:server.xml
cd /usr/local/tomcat2/tomcat2/conf/
vi server.xml
将8005改为8006,将8080改为8081,将8009改为8010
- 第一台tomcat
输入192.168.38.34:8080
输入 192.168.38.34:8080/test
- 第二台tomcat
输入192.168.38.34:8081
输入192.168.38.34:8081/test
以上说明tomcat部署、配置成功。
nginx部署
关闭防火墙
sudo ufw disable
apt下载安装
sudo su root
apt-get install nginx
启动
cd /usr/sbin
./nginx
输入http://192.168.38.33/,如下则说明安装成功
负载均衡、动静分离
修改nginx配置文件来实现负载均衡、动静分离。由于apt方式安装的配置文件nginx.conf的server模块是独立的。在配置文件路径下/etc/nginx,新建vhost文件夹,nginx.conf中http模块新增一句include /etc/nginx/vhost/*.conf,即包含vhost路径下所有.conf
cd vhost
vi 1.conf
新增的配置文件内容:
server_name 填写具体IP
upstream go-backend {
# tomcat1
server 192.168.38.34:8080;
# tomcat2
server 192.168.38.34:8081;
}
server
{
listen 80;
# nginx机器IP
server_name 192.168.38.33;
location ~* \.(do|jsp)$ {
proxy_pass http://go-backend;
}
}
检测无误后重载:
nginx -t
nginx -s reload
- 静态资源访问nginx
- 动态资源访问tomcat
- 刷新
参考资料: