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 "%r" %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 "%r" %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 "%r" %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