阿里云(三) 一个tomcat9部署多个项目且用nginx绑定域名且实现gradle/maven远程部署

1.效果

www.cthlizi.cn
wx.cthlizi.cn
memory.cthlizi.cn
blog.cthlizi.cn

四个域名对应四个项目,四个项目使用一个tomcat9部署,四个项目可以单独远程部署(重启不影响其他项目)

2.准备
申请好域名,创建四个子域名,就是使用阿里云的解析出四个域名
在阿里云安全组开放四个端口
对应关系:

www.cthlizi.cn    8088
wx.cthlizi.cn   8085
memory.cthlizi.cn  8086
blog.cthlizi.cn  8087

3.nginx配置
nginx.conf

	upstream cthlizi {
		server localhost:8088;
	}
	
	upstream wx.cthlizi {
		server localhost:8085;
	}
	
	upstream memory.cthlizi {
		server localhost:8086;
	}
	
	upstream blog.cthlizi {
		server localhost:8087;
	}
	
    server {
        listen       80;
        server_name  www.cthlizi.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://cthlizi/gmweb/;
			proxy_set_header  X-Real_IP  $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
	
	server {
        listen       80;
        server_name  wx.cthlizi.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://wx.cthlizi/testWechat/;
			proxy_set_header  X-Real_IP  $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
	
	server {
        listen       80;
        server_name  memory.cthlizi.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://memory.cthlizi/memory/;
			proxy_set_header  X-Real_IP  $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
	
	server {
        listen       80;
        server_name  blog.cthlizi.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
			proxy_pass http://blog.cthlizi/blog/;
			proxy_set_header  X-Real_IP  $remote_addr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }

很简单就是四个端口的监听服务

4.tomcat9配置
server.xml配置四个service
注意service name:Catalina, Catalina1,Catalina2,Catalina3
Connector端口号 8088/8009 8085/8010 8086/8011 8087/8012
Engine name:Catalina, Catalina1,Catalina2,Catalina3
Host 中appBase:webapps,webapps1,webapps2,webapps3

<Service name="Catalina1">
    <Connector port="8085" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps1"
            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" />
      </Host>
    </Engine>
  </Service>
  <Service name="Catalina2">
    <Connector port="8086" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps2"
            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" />
      </Host>
    </Engine>
  </Service>
  <Service name="Catalina3">
    <Connector port="8087" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8012" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina3" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps3"
            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" />
      </Host>
    </Engine>
  </Service>

conf下新增文件夹,空的,但是命名要对应Engine name
在这里插入图片描述
tomcat下新增webapps文件夹,命名和appBase对应
在这里插入图片描述
在其他webapps中放入项目war包和manager文件夹(从原webapps中复制,远程部署用)
在这里插入图片描述

4.远程部署
做完前三步,启动tomcat和nginx就可以使用域名访问多个项目了
要远程部署需要先配置manager权限
gradle+cargo远程部署的看这个后半部分

使用maven的话可以使用tomcat7-maven-plugin来实现远程部署
pom.xml中

<build>
        <finalName>memory</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <url>http://ip:8086/manager/text</url>
                    <server>servername</server>
                    <path>/memory</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

这边server要对应本地maven中的配置
本地maven 3.3的setting.xml中
用户名密码就是自己在tomcat配置manager权限时设置的

<server>
		  <id>servername</id>
		  <username>admin</username>
		  <password>admin123</password>
	</server>

然后idea中先war后redeploy
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值