如果你只有一台服务器,你可以安装两台tomcat,请参考:服务器上安装多台tomcat
另外本文还用到了子域名,请参考:子域名设置
由于这台服务器同时运行着一个网站,运行在nginx上,配置如下:
server{
listen 80;
server_name dev-heaven.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
下面开始转发配置:
upstream api.dev-heaven.com{
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server{
listen 80;
server_name api.dev-heaven.com;
location / {
proxy_pass http://api.dev-heaven.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
为了不影响主站,需要把主站的配置做修改:
server{
listen 80;
server_name dev-heaven.com www.dev-heaven.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
这样做是为了用www.dev-heaven.com和dev-heaven.com能同时访问到主站。
注:server_name匹配规则如下:
- 精准匹配,如:
server {
listen 80;
server_name dev-heaven.com www.dev-heaven.com;
}
- 以*通配符开始的字符串,如:
server {
listen 80;
server_name *.dev-heaven.com;
}
- 以*通配符结束的字符串,如:
server {
listen 80;
server_name www.*;
}
- 匹配正则表达式,如:
server{
listen 80;
server_name ~^(?.+)\.domain\.com$;
}
upstream命名应该和server_name保持一致,location中的proxy_pass的值必须以 http:// 开头,同时http://后面的值应该和upstream 后面的值保持一致。
为了测试,把tomcat webapps目录中ROOT中的index.jsp换成自己的index.jsp,内容分别是 “这是tomcat的第一个实例!!!”和“这是tomcat的第二个实例!!!”,这样就完成了。效果如下:


网友评论