1

我正在尝试在具有 ubuntu 16.04 和 apache 的 ec2 实例上安装 phppgadmin。我遵循的步骤是:

  1. sudo apt-get -y 安装 postgresql-contrib phppgadmin
  2. 编辑 /etc/apache2/conf-available/phppgadmin.conf 并将“Require local”行替换为“allow from all”。
  3. sudo ln -s /etc/apache2/conf-available/phppgadmin.conf /etc/apache2/sites-enabled/phppgadmin.conf

我在 000-default.conf 中创建了虚拟主机

<VirtualHost *:80>
        ServerName abc.domain.com
        ServerAlias www.abc.domain.com

        ServerAdmin webmaster@localhost

        ProxyPreserveHost On

        # setup the proxy
        <Proxy *>
                Order allow,deny
                Allow from all
        </Proxy>
        ProxyPass / http://localhost:3000/
        ProxyPassReverse / http://localhost:3000/
</VirtualHost>

由于另一个应用程序正在我的服务器上运行,所以我为该应用程序创建了虚拟主机。但是每当我去http://myserverip/phppgadmin它去我的应用程序在端口 3000 上运行。如何解决这个问题,我不知道我在哪里做错了?

4

1 回答 1

0

apache 只会对 HTTP 标头中的 ServerName 和 ServerAliases 做出反应,因此输入http://myserverip/phppgadmin将返回默认 Vhost。

如果您输入http://abc.domain.com/phppgadmin应该会导致您的应用程序位于http://localhost:3000

编辑: apa​​che 代理您的其他请求的原因是虚拟主机查找过程。Apache 将遍历所有 Vhost 以找到合适的 Vhost,如果失败,它将按字母数字顺序选择第一个,在本例中为000-default.conf. 因此,每个不适合 phppgadmin 的请求都被代理到localhost:3000.

有关更多信息,请参阅https://httpd.apache.org/docs/2.4/vhosts/details.html

于 2017-06-08T20:39:35.097 回答