访问在端口8080上运行的Tomcat,而不在URL中附加端口

时间:2015-01-05 15:23:12

标签: apache tomcat proxy dns router

我在一台机器上运行两个不同的两个Tomcat服务器的两个网站。一个Tomcat正在80端口监听,另一个在8080监听。

要求是,我想在不附加端口的情况下访问这两个网站。例如:

  1. 网站A. http://www.siteA.com(Tomcat 1:80号港口)

  2. 网站B. http://www.siteB.com(Tomcat 2:8080端口),

  3. 目前,站点B可通过http://www.siteB.com:8080访问。有什么可能的选择,所以我可以访问网站B而不添加端口8080(即http://www.siteB.com)并且没有域名转发和标记,我正在考虑以下内容:

    1. 代理服务器
    2. 路由器
    3. 请分享一些有用的指针。谢谢。

      卡姆兰

2 个答案:

答案 0 :(得分:0)

我认为这是反向代理的一个很好的用例 这个答案是一个很好的起点,可以帮助您使用NGINX设置您的要求:https://stackoverflow.com/a/13241047/967410

适用于您的情况,它将是这样的:

server { 
  server_name www.siteA.com;

  # siteA reverse proxy follow
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass $scheme://x.x.x.x:80;
}

server { 
  server_name www.siteB.com;

  # siteB reverse proxy settings follow
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://x.x.x.x:8080;
}

答案 1 :(得分:0)

为什么不在端口80上运行httpd并使用mod_rewrite转发请求?

在这种情况下,无论如何,你真正关心的是主机名。

显然,在这种情况下,你会在80以外的端口上拥有两个tomcat实例。