如何将jar文件部署到tomcat7中的子域主机文件夹

如何将jar文件部署到tomcat7中的子域主机文件夹,tomcat,tomcat7,subdomain,Tomcat,Tomcat7,Subdomain,我正在centos上运行tomact7 我正在tomcat服务器上运行我的网站example.com。我的server.xml如下所示: $ curl -X PUT -v -u username:password -T WebsiteHome-0.0.1.war 'http://example.com:8080/manager/text/deploy?path=/&update=true' 在我的项目的pom文件中,我正在使用tomcat7插件。每当我有一个新的war文件时,我都会

我正在centos上运行
tomact7

我正在tomcat服务器上运行我的网站
example.com
。我的
server.xml
如下所示:

$ curl -X PUT -v -u username:password -T WebsiteHome-0.0.1.war 'http://example.com:8080/manager/text/deploy?path=/&update=true'

在我的项目的
pom
文件中,我正在使用
tomcat7
插件。每当我有一个新的war文件时,我都会使用以下命令将其部署到tomcat:

$ curl -X PUT -v -u username:password -T WebsiteHome-0.0.1.war 'http://localhost:8080/manager/text/deploy?path=/&update=true'
如果要运行我的网站,请运行以下命令:

$ service tomcat start
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

我正在尝试运行一个域
example.com
和一个子域
academy.example.com

我修改了我的
server.xml
文件;删除
localhost
Host并添加两个新主机,如下所示:

$ curl -X PUT -v -u username:password -T WebsiteHome-0.0.1.war 'http://example.com:8080/manager/text/deploy?path=/&update=true'

之后,我运行
服务tomcat restart
,tomcat会自动生成一些新的文件和目录

$ tree /usr/share/tomcat
.
├── bin
├── conf
│   ├── Catalina
│   │   ├── academy.example.co
│   │   ├── example.co
│   │   └── localhost
│   └── ... [OTHER-XML-FILES-HERE]
├── lib
├── logs
├── temp
├── webapps
├── docs
│   └── ...
├── examples
│   └── ...
├── host-manager
│   └── ...
├── manager
│   └── ...
├── ROOT
│   └── ...
└── sample
    └── ...
├── webapps2
└── work
    └── Catalina
        ├── academy.example.co
        │   ├── _
        │   ├── examples
        │   ├── host-manager
        │   └── sample
        ├── example.co
        │   ├── _
        │   ├── docs
        │   ├── examples
        │   ├── host-manager
        │   ├── manager
        │   └── sample
        └── localhost
            ├── _
            ├── docs
            ├── examples
            ├── host-manager
            ├── manager
            │   └── ...
            └── sample
我的问题是现在如何部署war文件?如何使用前面的
curl
命令指定应该部署到哪个主机

如果在删除
localhost
Host&添加新主机后使用相同的curl命令,则会出现404错误:

$ curl -X PUT -v -u username:password -T WebsiteHome-0.0.1.war 'http://localhost:8080/manager/text/deploy?path=/&update=true'
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8080 (#0)
* Server auth using Basic with user 'admin'
> PUT /manager/text/deploy?path=/&update=true HTTP/1.1
> Host: localhost:8080
> Authorization: Basic YWRtaW46YWRtaW5hZG1pbg==
> User-Agent: curl/7.61.1
> Accept: */*
> Content-Length: 176151710
> Expect: 100-continue
>
< HTTP/1.1 404 Not Found
< Server: Apache-Coyote/1.1
< Content-Length: 0
< Date: Wed, 26 Aug 2020 12:38:44 GMT
< Connection: close
<
* Closing connection 0
$curl-X PUT-v-u用户名:密码-T WebsiteHome-0.0.1.war'http://localhost:8080/manager/text/deploy?path=/&update=true'
*正在尝试127.0.0.1。。。
*TCP_节点集
*已连接到本地主机(127.0.0.1)端口8080(#0)
*使用用户“admin”的Basic进行服务器身份验证
>PUT/manager/text/deploy?path=/&update=true HTTP/1.1
>主机:本地主机:8080
>授权:基本YWRtaW46YWRtaW5hZG1pbg==
>用户代理:curl/7.61.1
>接受:*/*
>内容长度:176151710
>预期:100人继续
>
未找到

如何部署我的两个新war文件(一个用于域,另一个用于子域),并指定它们中的每一个都应部署在不同的主机上?

默认情况下,当应用程序中未定义
上下文时,将设置管理器上下文。似乎更改了
server.xml
以支持多个虚拟主机

要使
curl
deploy命令在新设置的虚拟主机中工作,您需要为每个虚拟主机设置manager上下文,如下所示:

如果将Tomcat配置为支持多个虚拟主机(网站),则需要为每个虚拟主机(网站)配置一个管理器

只需从
tomcat7
安装文件夹中包含的默认
webapp.dist
中复制
manager
文件夹,并在
server.xml
中设置
上下文即可:

<Host name="example.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
         prefix="localhost_access_log." suffix=".txt"
         pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  <Context docBase="ROOT" path="" reloadable="true" />
  <Context docBase="manager" path="/manager" reloadable="true" privileged="true" />
</Host>

默认情况下,当应用程序中未定义
上下文时,将设置管理器上下文。似乎更改了
server.xml
以支持多个虚拟主机

要使
curl
deploy命令在新设置的虚拟主机中工作,您需要为每个虚拟主机设置manager上下文,如下所示:

如果将Tomcat配置为支持多个虚拟主机(网站),则需要为每个虚拟主机(网站)配置一个管理器

只需从
tomcat7
安装文件夹中包含的默认
webapp.dist
中复制
manager
文件夹,并在
server.xml
中设置
上下文即可:

<Host name="example.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
         prefix="localhost_access_log." suffix=".txt"
         pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  <Context docBase="ROOT" path="" reloadable="true" />
  <Context docBase="manager" path="/manager" reloadable="true" privileged="true" />
</Host>

它真的是本地主机吗?它真的是本地主机吗?