NGINX+Tomcat多实例和负载均衡

目录

一.tomcat多实例

安装jdk

添加 tomcat 环境变量 

安装 tomcat 

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号

浏览器访问测试 

二.负载均衡

1.nginx部署

1.安装Nginx服务

扫描二维码关注公众号,回复: 13192066 查看本文章

2.编译安装Nginx

3. 优化路径

4.添加 Nginx 系统服务

2.第一台tomcat部署

1.安装jdk

2.添加 tomcat 环境变量  

3.第二台tomcat部署

1.安装jdk

2.添加 tomcat 环境变量  

4. Nginx server 配置

测试


一.tomcat多实例

安装jdk

添加 tomcat 环境变量 

[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile 

 在行末添加以下内容

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm
[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm 
[root@localhost opt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# ll
总用量 25980
drwxr-xr-x. 2 root root     4096 11月 15 14:26 bin
-rw-r--r--. 1 root root     3244 12月 16 2018 COPYRIGHT
drwxr-xr-x. 3 root root      132 11月 15 14:26 include
-rw-r--r--. 1 root root  5207434 12月 12 2018 javafx-src.zip
drwxr-xr-x. 5 root root      185 11月 15 14:26 jre
drwxr-xr-x. 5 root root      245 11月 15 14:26 lib
-rw-r--r--. 1 root root       40 12月 16 2018 LICENSE
drwxr-xr-x. 4 root root       47 11月 15 14:26 man
-rw-r--r--. 1 root root      159 12月 16 2018 README.html
-rw-r--r--. 1 root root      424 12月 16 2018 release
-rw-r--r--. 1 root root 21103945 12月 16 2018 src.zip
-rw-r--r--. 1 root root   108109 12月 12 2018 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-r--r--. 1 root root   155002 12月 16 2018 THIRDPARTYLICENSEREADME.txt
[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
 77 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
 78 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
 79 export PATH=$JAVA_HOME/bin:$PATH
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost bin]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
##此时java环境变了

安装 tomcat 

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号 

 

修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号

[root@localhost bin]# vim startup.sh  

 [root@localhost bin]# vim shutdown.sh 

 [root@localhost bin]# vim startup.sh  

  [root@localhost bin]# vim shutdown.sh 

浏览器访问测试 

http://192.168.68.30:8080/

 ​​​​​​http://192.168.68.30:8081/

[root@localhost jdk1.8.0_201-amd64]# cd /opt/
[root@localhost opt]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm
[root@localhost opt]# tar zxf apache-tomcat-9.0.16.tar.gz 
[root@localhost opt]# mkdir /usr/local/tomcat
[root@localhost opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
[root@localhost opt]# cd /usr/local/tomcat/
[root@localhost tomcat]# ls
tomcat1
[root@localhost tomcat]# cp -a tomcat1 tomcat2
[root@localhost tomcat]# ls
tomcat1  tomcat2
[root@localhost tomcat]# cd tomcat2
[root@localhost tomcat2]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost tomcat2]# cd conf/
[root@localhost conf]# ls
catalina.policy      jaspic-providers.xml  server.xml        web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
context.xml          logging.properties    tomcat-users.xsd
[root@localhost conf]# vim server.xml 
 22 <Server port="8006" shutdown="SHUTDOWN">  ##将端口的8005改为8006
 69     <Connector port="8081" protocol="HTTP/1.1"   ##将端口的8005改为8001
116     <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
##将端口的8005改为8010
[root@localhost tomcat2]# cd bin/
[root@localhost bin]# ls
bootstrap.jar       commons-daemon-native.tar.gz  makebase.sh       tomcat-juli.jar
catalina.bat        configtest.bat                setclasspath.bat  tomcat-native.tar.gz
catalina.sh         configtest.sh                 setclasspath.sh   tool-wrapper.bat
catalina-tasks.xml  daemon.sh                     shutdown.bat      tool-wrapper.sh
ciphers.bat         digest.bat                    shutdown.sh       version.bat
ciphers.sh          digest.sh                     startup.bat       version.sh
commons-daemon.jar  makebase.bat                  startup.sh
[root@localhost bin]# vim startup.sh 
 21 export CATALINA_HOME2=/usr/local/tomcat/tomcat2
 22 export CATALINA_BASE2=/usr/local/tomcat/tomcat2
 23 export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
[root@localhost bin]# vim shutdown.sh 
 21 export CATALINA_HOME2=/usr/local/tomcat/tomcat2
 22 export CATALINA_BASE2=/usr/local/tomcat/tomcat2
 23 export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
[root@localhost bin]# ./startup.sh 
[root@localhost tomcat1]# cd bin/
[root@localhost bin]# ls
bootstrap.jar       commons-daemon-native.tar.gz  makebase.sh       tomcat-juli.jar
catalina.bat        configtest.bat                setclasspath.bat  tomcat-native.tar.gz
catalina.sh         configtest.sh                 setclasspath.sh   tool-wrapper.bat
catalina-tasks.xml  daemon.sh                     shutdown.bat      tool-wrapper.sh
ciphers.bat         digest.bat                    shutdown.sh       version.bat
ciphers.sh          digest.sh                     startup.bat       version.sh
commons-daemon.jar  makebase.bat                  startup.sh
[root@localhost bin]# vim shutdown.sh 
 21 export CATALINA_HOME2=/usr/local/tomcat/tomcat1
 22 export CATALINA_BASE2=/usr/local/tomcat/tomcat1
 23 export TOMCAT_HOME2=/usr/local/tomcat/tomcat1
[root@localhost bin]# vim startup.sh 
 21 export CATALINA_HOME2=/usr/local/tomcat/tomcat1
 22 export CATALINA_BASE2=/usr/local/tomcat/tomcat1
 23 export TOMCAT_HOME2=/usr/local/tomcat/tomcat1
[root@localhost bin]# ./startup.sh 
[root@localhost bin]# ss -natp |grep java
LISTEN     0      100         :::8080                    :::*                   users:(("java",pid=3607,fd=54))
LISTEN     0      100         :::8081                    :::*                   users:(("java",pid=3691,fd=54))
LISTEN     0      1         ::ffff:127.0.0.1:8005                    :::*                   users:(("java",pid=3607,fd=82))
LISTEN     0      1         ::ffff:127.0.0.1:8006                    :::*                   users:(("java",pid=3691,fd=82))
LISTEN     0      100         :::8009                    :::*                   users:(("java",pid=3607,fd=59))
LISTEN     0      100         :::8010                    :::*                   users:(("java",pid=3691,fd=59))

二.负载均衡

1.nginx部署

1.安装Nginx服务

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.编译安装Nginx

[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# ls
nginx-1.12.0.tar.gz
[root@localhost opt]# tar zxf nginx-1.12.0.tar.gz 
[root@localhost opt]# ls
nginx-1.12.0  nginx-1.12.0.tar.gz
[root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@localhost nginx-1.12.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make && make install -j4

3. 优化路径

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

4.添加 Nginx 系统服务

[root@localhost nginx-1.12.0]# cd /lib/systemd/system
[root@localhost system]# vim 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
[root@localhost system]# systemctl start nginx.service
[root@localhost system]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@localhost system]# ss -natp |grep 80
LISTEN     0      128          *:80                       *:*                   users:(("nginx",pid=5117,fd=6),("nginx",pid=5116,fd=6))

2.第一台tomcat部署

1.安装jdk

2.添加 tomcat 环境变量  

 [root@localhost jdk1.8.0_201-amd64]# vim /etc/profile 

 在行末添加以下内容

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm
[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm 
[root@localhost opt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# ll
总用量 25980
drwxr-xr-x. 2 root root     4096 11月 15 14:26 bin
-rw-r--r--. 1 root root     3244 12月 16 2018 COPYRIGHT
drwxr-xr-x. 3 root root      132 11月 15 14:26 include
-rw-r--r--. 1 root root  5207434 12月 12 2018 javafx-src.zip
drwxr-xr-x. 5 root root      185 11月 15 14:26 jre
drwxr-xr-x. 5 root root      245 11月 15 14:26 lib
-rw-r--r--. 1 root root       40 12月 16 2018 LICENSE
drwxr-xr-x. 4 root root       47 11月 15 14:26 man
-rw-r--r--. 1 root root      159 12月 16 2018 README.html
-rw-r--r--. 1 root root      424 12月 16 2018 release
-rw-r--r--. 1 root root 21103945 12月 16 2018 src.zip
-rw-r--r--. 1 root root   108109 12月 12 2018 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-r--r--. 1 root root   155002 12月 16 2018 THIRDPARTYLICENSEREADME.txt
[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
 77 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
 78 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
 79 export PATH=$JAVA_HOME/bin:$PATH
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost bin]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
##此时java环境变了

[root@localhost webapps]# mkdir /usr/local/tomcat/webapps/test
[root@localhost webapps]# vim /usr/local/tomcat/webapps/test/index.jsp 

 [root@localhost test]# vim index.jsp 

由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置

 [root@localhost conf]# vim server.xml 

将其他host配置都删掉

[root@localhost conf]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh 
[root@localhost webapps]# mkdir /usr/local/tomcat/webapps/test
[root@localhost webapps]# 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("动态页面ooo,http://www.ooo.com,hello ooo!!!");%>
  </body>
</html>
[root@localhost test]# cd /usr/local/tomcat/conf/
[root@localhost conf]# vim 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" />    

      </Host>
[root@localhost conf]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh 

3.第二台tomcat部署

1.安装jdk

2.添加 tomcat 环境变量  

 [root@localhost jdk1.8.0_201-amd64]# vim /etc/profile 

 在行末添加以下内容

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u201-linux-x64.rpm
[root@localhost opt]# rpm -ivh jdk-8u201-linux-x64.rpm 
[root@localhost opt]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# ll
总用量 25980
drwxr-xr-x. 2 root root     4096 11月 15 14:26 bin
-rw-r--r--. 1 root root     3244 12月 16 2018 COPYRIGHT
drwxr-xr-x. 3 root root      132 11月 15 14:26 include
-rw-r--r--. 1 root root  5207434 12月 12 2018 javafx-src.zip
drwxr-xr-x. 5 root root      185 11月 15 14:26 jre
drwxr-xr-x. 5 root root      245 11月 15 14:26 lib
-rw-r--r--. 1 root root       40 12月 16 2018 LICENSE
drwxr-xr-x. 4 root root       47 11月 15 14:26 man
-rw-r--r--. 1 root root      159 12月 16 2018 README.html
-rw-r--r--. 1 root root      424 12月 16 2018 release
-rw-r--r--. 1 root root 21103945 12月 16 2018 src.zip
-rw-r--r--. 1 root root   108109 12月 12 2018 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-r--r--. 1 root root   155002 12月 16 2018 THIRDPARTYLICENSEREADME.txt
[root@localhost jdk1.8.0_201-amd64]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
 77 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
 78 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
 79 export PATH=$JAVA_HOME/bin:$PATH
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile
[root@localhost bin]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
##此时java环境变了

[root@localhost webapps]# mkdir /usr/local/tomcat/webapps/test
[root@localhost webapps]# vim /usr/local/tomcat/webapps/test/index.jsp 

 [root@localhost test]# vim index.jsp 

由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置

 [root@localhost conf]# vim server.xml 

将其他host配置都删掉

[root@localhost conf]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh 

[root@localhost webapps]# mkdir /usr/local/tomcat/webapps/test
[root@localhost webapps]# 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("动态页面oyyy,http://www.oyyy.com,hello oyyy!!!!");%>
  </body>
</html>
[root@localhost test]# cd /usr/local/tomcat/conf/
[root@localhost conf]# vim 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" />    

      </Host>
[root@localhost conf]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh 

4. Nginx server 配置

然后将图片传到test目录下 

 

 [root@localhost test]# vim /usr/local/nginx/conf/nginx.conf

[root@localhost ~]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# mkdir test
[root@localhost html]# ls
50x.html  index.html  test
[root@localhost html]# vim test/index.html
this is ouyang test web !!!!
[root@localhost test]# vim /usr/local/nginx/conf/nginx.conf
 34     upstream tomcat_server {
 35                     server 192.168.68.40:8080 weight=1;
 36                     server 192.168.68.105:8080 weight=1;
 37         }
 38     server {
 39         listen       80;
 40         server_name  www.oyyy.com;
 41 
 42         charset utf-8;
 43 
 44         #access_log  logs/host.access.log  main;
 45         location ~ .*\.jsp$ {
 46                 proxy_pass http://tomcat_server;
 47                 proxy_set_header HOST $host;
 48                 proxy_set_header X-Real-IP $remote_addr;
 49                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 50         }
 51         location ~* .*\.(gif|jpg|jpeg|png|bmp|html)$ {
 52                  root /usr/local/nginx/html/test;
 53                  expires 1d; }
 54                  location / {
 55             root   html;
 56             index  index.html index.htm;
 57         }
[root@localhost test]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost test]# nginx -s reload

测试

浏览器中进行测试,动态页面测试进行不断刷新即可

静态页面 http://192.168.68.30/1.jpg

http://192.168.68.30/index.html静态页面 http://192.168.68.30/index.html

 动态页面 http://192.168.68.30/index.jsp

 刷新后 http://192.168.68.30/index.jsp

猜你喜欢

转载自blog.csdn.net/oyyy3/article/details/121348281