如何在apache中在同一台服务器上运行两个虚拟主机

如何在apache中在同一台服务器上运行两个虚拟主机

我已按照在 apache 中运行两个 web 应用程序的说明进行操作,我当前的配置如下:

我在端口 80 上有一个 php web 应用程序,在端口 88 上有一个 rails 应用程序。php 应用程序运行正常,但如果我尝试访问 virtualdiscoverycenter.net:88,rails 应用程序将无法加载(超时)。如果我切换它并使 rails 应用程序为 80,php 应用程序为 88,rails 应用程序可以运行,但 php 将无法加载。这显然不是 rails 或 php 的问题。我已将端口 80 和 88 添加到 iptables,但仍然无法运行。任何见解或帮助都将不胜感激。如果您想查看某些命令的输出,请告诉我。
谢谢。

--编辑:我还禁用了 iptables 和 ufw,但仍然超时。我很困惑。--编辑 2:原来我无法使用这些端口。它在端口 8000 上运行良好。感谢大家的帮助,对此我深表歉意。

答案1

查看 IPtables 规则,您需要允许流量到端口 88。

iptables -A INPUT-p tcp --dport 88 -j ACCEPT

这应该打开端口 88,以便您可以连接到其上运行的程序。

您可能需要查看安装Phusion 乘客在你的 Apache 服务器上,这将允许你在同一个端口上运行 PHP 和 Rails 应用程序,并且很容易安装

答案2

几年前,我工作时必须这样做,我使用 mod_rewrite 并且我的问题得到了解决。

请参见: http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

你可以做类似的事情:

<VirtualHost *:80>
    ServerName j0hntheman.com

    ProxyRequests Off
    ProxyPreserveHost On

    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>

    ProxyPass / http://205.234.222.223:8087/
    ProxyPassReverse / http://205.234.222.223:8087/

    RewriteEngine On
    RewriteRule ^/ /SPL/ [L,P,R]
</VirtualHost>

然后再做另一个,当连接到 80 或 443 时,他们就找到了正确的服务器。;-) 希望有帮助!

答案3

如果你把

NameVirtualHost *:88

NameVirtualHost *:80

代替

NameVirtualHost *:80

NameVirtualHost *:88

相关内容