【问题标题】:how set website and webservice on the same port (8080)?如何在同一个端口(8080)上设置网站和网络服务?
【发布时间】:2014-07-29 23:19:55
【问题描述】:

在托管网站 address.com(由 drupal 管理)和 apache2 服务器(在端口 8080 上运行)的服务器中,我想安装在同一端口 8080 上运行的 web 服务(tomcat7 / axis2)。是否有怎么办?还有 svn, trac 在该端口上运行。不幸的是,由于安全限制,这是唯一可以从外部访问的端口。 谢谢

【问题讨论】:

  • 不能在同一个端口上运行两个进程(即:Tomcat 7 + SVN)。

标签: apache tomcat port


【解决方案1】:

当您在另一个端口(本地主机)上安装 Web 服务时,您可以使用 Apache 作为代理(使用 mod_proxy)来访问该服务。

也许有用:How to rewrite / proxy an Apache URI to an application listening on a specific port / server?

【讨论】:

    【解决方案2】:

    您绝对可以在同一个端口上公开多个服务,只要它们都位于不同的 URL 命名空间中。例如,您已经在端口 8080 上运行 Trac 和 svn,所以很明显,您已经按照您的要求做。

    要将 Tomcat 添加到组合中,您通常会:

    • 在另一个端口上本地运行 Tomcat,然后
    • 使用ProxyPassProxyPassReverse 通过您的网络服务器在端口8080 上公开Tomcat 服务。

    例如,如果您想让您的 Tomcat 实例在 http://myserver:8080/tomcat 可见,您可以在您的 Apache 配置中添加如下内容:

    ProxyPass /tomcat/ http://localhost:8888/
    ProxyPassReverse /tomcat/ http://localhost:8888/
    

    您可以阅读有关这些指令的更多信息here。请注意,您可能需要执行 Tomcat 应用程序的其他配置,以反映它在 /tomcat/ 外部可见的事实。

    假设您控制该系统的 DNS,您还可以潜在地利用虚拟主机;在这种情况下,您可以:

    http://myserver-trac:8080/
    

    导致VirtualHost 配置不同于:

    http://myserver-tomcat:8080/
    

    您可以阅读更多关于基于名称的虚拟主机here

    【讨论】:

    • 谢谢!我认为第一种方法更简单。只是一个问题:我找不到必须将这两行添加到哪个文件,你能帮我吗?
    • 它们需要在您的 Apache 配置中的某个位置。我无法提供确切的答案,因为这因分发而异,但可能在/etc/httpd/conf.d/etc/apache2 的某个地方。尝试搜索apache configuration + 您的发行版名称(如果您使用的是 Linux)或操作系统(对于 OS X 或 Windows)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2011-09-15
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    相关资源
    最近更新 更多