tomcat多个域名访问同一个应用的不同页面,怎么配置,求大神。
网上查资料都是要配置多个虚拟主机,多个应用。
------解决思路----------------------
找个前端代理,比如 nginx,很简单就可以搞定你的需求。无需要配置多个虚拟主机、多个应用
------解决思路----------------------
这样配置:
server {
listen 8091;
server_name www.test.com;
location / {
proxy_pass http://localhost:8080/aa/;
include proxy.conf;
}
}
server {
listen 8092;
server_name www.example.com;
location / {
proxy_pass http://localhost:8080/bb/;
include proxy.conf;
}
}
比如 nginx 公网 ip 是 111.111.111.111,那么你只需将 www.test.com 解析到 111.111.111.111:8091,将 www.example.com 解析到 111.111.111.111:8092 即可。
------解决思路----------------------
proxy.conf 是我们的一些通用代理配置,比如 proxy_set_header、超时时间之类的东东。
另外页面不要用 redirect 跳转,比如 s2:
<action name="login" class="com.defonds.action.GetUserNameAction"
method="loginForGetUser">
<result name="success" type="redirect">/view/main/jsp/index.jsp</result>
<result name="login">/index.jsp</result>
</action>
换成
<action name="login" class="com.defonds.action.GetUserNameAction"
method="loginForGetUser">
<result name="success" type="redirect">/view/main/jsp/index.jsp</result>
<result name="login">/index.jsp</result>
</action>
此外,proxy.conf 的参考内容给你看看:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_set_header X-Forwarded-Proto $scheme;
Good luck~