NGINX+Tomcat多实例和负载均衡

目录

一.tomcat多实例

安装jdk

添加 tomcat 环境变量 

安装 tomcat 

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

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

浏览器访问测试 

二.负载均衡

1.nginx部署

1.安装Nginx服务

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
今日推荐