在Tomcat中发布自己的web应用(集群形式)

本文详述了如何在Tomcat集群环境中部署web应用,包括配置tomcat-users.xml、删除ROOT目录、调整maven settings.xml和pom.xml、解决远程部署权限问题,以及设置nginx进行反向代理和负载均衡。通过这些步骤,可以实现多台Tomcat服务器上的应用集群部署,确保高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目打包完成后,往往需要在远程tomcat中部署自己的应用,在这里把主要的步骤记录下来。

这里介绍的主要是集群形式,当然单机版也是一样的,只不过单机版只需要一个tomcat服务。

1.配置 3 个 tomcat 的 tomcat-users.xml

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,admin-script,admin-gui"/>

其中的username和password根据需要自行设置,这里以admin为例

2.删除3个tomcat的webapps下的ROOT目录

3.重新启动tomcat服务器,注意最好先运行./shutdown.sh然后再运行./startup.sh

4.配置 maven 的 settings.xml文件,添加一个新的server即可

<server>
    <id>ego-manager</id>
    <username>admin</username>
    <password>admin</password>
</server>

5.配置pom文件,添加插件的相关属性

<plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <!--maven中关联的server-->
                    <server>ego-manager</server>
                    <!--<path>/</path>-->
                    <!--<port>8080</port>-->
                    <path>/ROOT</path>
                    <url>http://192.168.181.138:6060/manager/text</url>
                    <!--<热部署-->
                    <update>true</update>
                </configuration>
            </plugin>
</plugins>

其中6060其中之一的tomcat服务,我们还需要上传到7070和8080端口,所以一会儿需要上传三次

这里有个坑,如果使用的 toncat9 版本,可能会有报错:

Cannot invoke Tomcat manager: Protocol wrong type for socket

默认tomcat只允许本地部署,如果是要部署到远程服务器上,那么需要在远程服务器的{TOMCAT_HOME}conf/Catalina/localhost/目录下创建一个manager.xml文件,配置如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

这里允许所有的地址远程部署,也可以指定ip范围部署,

allow="127.0.0.1,192.168.1.*"

6.开始打包,点击deploy即可

7.修改nginx的配置文件,实现反向代理和负载均衡

注意nginx不在同一台服务器上,我们修改的配置文件如下

upstream www.taozi.com{
        server 192.168.181.138:6060 weight=2;
        server 192.168.181.138:7070;
        server 192.168.181.138:8080;
    }

    server {
        listen       80;
        #1.请求域名
        server_name  www.taozi.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # root   html;
            # index  index0.html index.htm;
            #2.找到实际路径,做转发
            proxy_pass http://www.taozi.com;
        }
        #对静态资源放行
        location ~ .*\.(ico|png|jpg|js|css)$ {
        	# 指定静态资源的位置
        	proxy_pass http://www.taozi.com;
        }

    }

然后重新启动nginx服务器即可,这样www.taozi.com就是以集群的形式对外提供服务

如果nginx宕机了,整个应用就没法访问,可以使用nginx+keepalive实现nginx集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值