tomcat搭建及负载均衡

tomcat搭建及负载均衡

Apache与tomcat的区别
Apache与tomcat都可以作为独立的web服务器来运行,但是apache不能解释java程序,(jsp,serverlet)
Apache是普通的服务器,本身只支持html既普通网页,不过可以通过插件支持php,还可以与tomcat连通(单向Apache连接tomcat就是说通过Apache可以访问tomcat资源。相反,如果没有连通,apache则是访问不了java程序编写的页面)。
Apache和tomcat是独立的,在通一台服务器上可以集成。

准备设备3台;
设备1 192.168.217.11 tomcat
设备2 192.168.217.12 tomcat
设备3 192.168.217.13 nginx
三台设设备系统版本:CentOS Linux release 7.6.1810 (Core)
tomcat版本:apache-tomcat-8.5.73.tar
DJK版本:jdk-8u91-linux-x64.tar
nginx版本:nginx-1.12.2.tar

设备1、2安装tomcat
删除原有java环境

[root@localhost ~]# rm -rf /usr/bin/java 

关闭防火墙

 [root@localhost ~]# systemctl stop firewalld

查看拖入的安装包

[root@localhost ~]# ls
anaconda-ks.cfg              initial-setup-ks.cfg
apache-tomcat-8.5.73.tar.gz  jdk-8u91-linux-x64.tar.gz

解压缩

[root@localhost ~]# tar -zxf apache-tomcat-8.5.73.tar.gz -C /usr/src/
[root@localhost ~]# tar -zxf jdk-8u91-linux-x64.tar.gz 
[root@localhost ~]# mv /usr/src/apache-tomcat-8.5.73/ /usr/local/tomcat

查看jdk的解压文件

[root@localhost ~]# ls
anaconda-ks.cfg              initial-setup-ks.cfg  jdk-8u91-linux-x64.tar.gz
apache-tomcat-8.5.73.tar.gz  jdk1.8.0_91

[root@localhost ~]# mv jdk1.8.0_91/ /usr/local/java

添加配置路径
[root@localhost ~]# vim /etc/profile

最后添加配置路径
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HMOE/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

重新加载依赖环境

[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin:/usr/local/java/jre/bin

启动脚本

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

查看端口

[root@localhost ~]# netstat -anput | grep tomcat 
[root@localhost ~]# netstat -anput | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      10899/java       
   
curl 192.168.217.11:8080
curl 192.168.217.12:8080

在这里插入图片描述
修改配置文件;

[root@localhost ~]# cat /usr/local/tomcat/conf/server.xml
[  <Host name="localhost"  appBase="vvv"      #修改appBase 后面路径 (也可不修改)
        unpackWARs="true" autoDeploy="true">
添加以下内容        
    <Context path="vvv"  docBase="/vvv"
        reloadeable="false" crossContext="true" />
        
[root@localhost ~]# mkdir /vvv
[root@localhost ~]# echo tomcat1 > /vvv/index.jsp     设备2 输入tomcat  2222     #便于区分  两个内容不一样
没有路径的优化  关闭的命令
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
[root@localhost ~]# netstat -anput | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      11690/java          
tcp6       0      0 ::1:44526               ::1:8080                TIME_WAIT   -            
设备1       
[root@localhost ~]# curl 192.168.217.11:8080/vvv/index.jsp
tomcat1
设备2
[root@localhost ~]# curl 192.168.217.12:8080/vvv/index.jsp
tomcat 2222

在这里插入图片描述
在这里插入图片描述
设备3 代理服务器
安装依赖

[root@localhost ~]# yum -y install gcc gcc-c++ zlib zlib-devel pcre pcre-devel openssl openssl-devel

解压

[root@localhost ~]# tar -zxf nginx-1.12.2.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/nginx-1.12.2/

编译检查

[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

编译安装

[root@localhost nginx-1.12.2]# make && make install

建立软连接

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

修改配置文件

[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
http   与    server   之间添加  负载均衡
upstream tomcatserver {
       server 192.168.217.11:8080 weight=1;
       server 192.168.217.12:8080 weight=1;
       }
  
 server {
        listen       80;
        server_name  localhost;
           #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
      #  root   html;                     #注释  (此处不住注释  nginx 网页仍然存在)
      #  index  index.html index.htm;    #注释
       proxy_pass http://tomcatserver;  #添加  名字可自己编写
    }
    #error_page  404              /404.html;
[root@localhost nginx-1.12.2]# killall -9 nginx   #杀死nginx进程
[root@localhost nginx-1.12.2]# nginx                #重启
[root@localhost nginx-1.12.2]# nginx -s reload #加载配置文件
[root@localhost nginx-1.12.2]# nginx         #重启

验证负载均衡

[root@localhost nginx-1.12.2]# curl 192.168.217.13/vvv/index.jsp
tomcat1
[root@localhost nginx-1.12.2]# curl 192.168.217.13/vvv/index.jsp
tomcat 2222

总结:
设备2 安装tomcat 时遇到一下问题

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
六月 11, 2022 2:32:32 下午 org.apache.catalina.startup.Catalina stopServer
严重: Could not contact [localhost:8005]. Tomcat may not be running.
六月 11, 2022 2:32:32 下午 org.apache.catalina.startup.Catalina stopServer
严重: Catalina.stop: 
java.net.ConnectException: 拒绝连接
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:391)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:481)

经过检查使用了很多方法仍未解决,最终 执行了此命令source /etc/profile 发现成功解决

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
六月 11, 2022 2:32:32 下午 org.apache.catalina.startup.Catalina stopServer
严重: Could not contact [localhost:8005]. Tomcat may not be running.
六月 11, 2022 2:32:32 下午 org.apache.catalina.startup.Catalina stopServer
严重: Catalina.stop: 
java.net.ConnectException: 拒绝连接
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:391)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:481)

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost ~]# ^C
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
[root@localhost ~]# vim /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# sh /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost ~]# netstat -anput | grep tomcat
[root@localhost ~]# netstat -anput | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      74311/java          
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
[root@localhost ~]# vim /vvv/index.jsp
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@localhost ~]# netstat -anput | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      74866/java          
tcp6       0      0 ::1:56564               ::1:8080                TIME_WAIT   -                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值