1 需求
安装两个Tomcat服务,通过nginx反向代理。
本案例中使用两台虚拟机演示。
Nginx安装在192.168.20.101环境中
Tomcat安装到192.168.20.102环境中。端口为8080与9090
2 安装服务环境
上传JDK和Tomcat软件安装包
安装JDK
[root@node2 apps]# ls
apache-tomcat-8.5.61.tar.gz jdk-8u221-linux-x64.rpm
[root@node2 apps]# rpm -ivh jdk-8u221-linux-x64.rpm
配置JDK环境变量
先查找jdk安装在哪个目录下面:
[root@node2 apps]# find / -name java #搜索java安装在了什么目录下
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/etc/alternatives/java
/var/lib/alternatives/java
/usr/bin/java
/usr/share/bash-completion/completions/java
/usr/java
/usr/java/jdk1.8.0_221-amd64/bin/java #安装后目录在/usr/java/
/usr/java/jdk1.8.0_221-amd64/jre/bin/java
[root@node2 apps]# ll /usr/java/
总用量 0
lrwxrwxrwx. 1 root root 16 8月 2 20:13 default -> /usr/java/latest
drwxr-xr-x. 8 root root 258 8月 2 20:13 jdk1.8.0_221-amd64
lrwxrwxrwx. 1 root root 28 8月 2 20:13 latest -> /usr/java/jdk1.8.0_221-amd64
配置环境变量:
[root@node2 apps]# vim /etc/profile
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
然配置的环境变量生效:
[root@node2 apps]# source /etc/profile
测试安装配置是否正确:
[root@node2 apps]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
[root@node2 apps]# jps #查看运行的java进程
7701 Jps #说明配置成功了
安装并配置tomcat
# 解压安装包
[root@node2 apps]# tar -zxvf apache-tomcat-8.5.61.tar.gz -C /opt/
[root@node2 apps]# cd /opt/
[root@node2 opt]# ls
apache-tomcat-8.5.61 apps
[root@node2 opt]# mv apache-tomcat-8.5.61/ tomcat1
[root@node2 opt]# cd tomcat1/bin/
#启动tomcat
[root@node2 bin]# ./startup.sh
修改index.jsp主页:
[root@node2 bin]# vim ../webapps/ROOT/index.jsp
<body>
192.168.20.102:8080
</body>
关闭tomcat1,并将tomcat1复制一份
[root@node2 bin]# ./shutdown.sh
[root@node2 bin]# cd /opt/
[root@node2 opt]# ls
apps tomcat1
[root@node2 opt]# cp -r tomcat1/ tomcat2
[root@node2 opt]# ls
apps tomcat1 tomcat2
修改tomcat2的index.jsp主页
[root@node2 opt]# vim tomcat2/webapps/ROOT/index.jsp
<body>
192.168.20.102:9090
</body>
修改tomcat2的端口号8080改为9090
[root@node2 opt]# vim tomcat2/conf/server.xml
<Server port="9095" shutdown="SHUTDOWN"> #8005改为9095,不改的话同时启动两个tomcat抛出异常
......
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
启动tomcat2,并测试:
[root@node2 opt]# cd tomcat2/bin/
[root@node2 bin]# ./startup.sh
3 配置Nginx实现服务的反向代理
修改nginx.xml配置文件:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 0;
upstream tomcat.server1{
server 192.168.20.102:8080;
}
upstream tomcat.server2{
server 192.168.20.102:9090;
}
server {
listen 80;
#为虚拟机指定IP或者是域名
server_name www.tomcat1.com;
#主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的web目录
proxy_pass http://tomcat.server1;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一个Server就是一个虚拟主机
server {
listen 80;
#为虚拟机指定IP或者是域名
server_name www.tomcat2.com;
#主要配置路由访问信息
location / {
#用于指定访问根目录时,访问虚拟主机的web目录
proxy_pass http://tomcat.server2;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
修改window下的hosts文件:
192.168.20.101 node1 www.bjsxt.cn www.baizhan.cn www.tomcat1.com www.tomcat2.com
分别访问:www.tomcat1.com www.tomcat2.com进行测试