如何对 tomcat 和静态网站都执行 ProxyPass?

如何对 tomcat 和静态网站都执行 ProxyPass?

我在 amazon Linux 上安装了 apache,那里有 tomcat 和静态网站,两者都应该通过 apache 提供服务。

这是我的第一个 conf 文件 (app_name.conf) 我已经完成了这样的代理传递:--

<VirtualHost *:80>

ServerName example1.com

ProxyPreserveHost On
ProxyPass           /app_name http://example1.com:8080/app_name/
ProxyPassReverse    /app_name http://example1.com:8080/app_name/

</VirtualHost>

此代理通行证适用于 tomcat。

我有一个静态网站(/var/www/example2)和配置文件(example2.conf)如下:--

<VirtualHost *:80>

    ServerName www.example2.com
    ServerAlias example2.com
    DocumentRoot /var/www/example2
    ErrorLog /var/www/example2/error.log
    CustomLog /var/www/example2/requests.log combined


</VirtualHost>

问题:-- 之前我只有一个虚拟主机(上面的那个),而且运行良好,但现在我又添加了一个虚拟主机。现在我无法访问第二个虚拟主机(example2.com),它只能重定向到第一个。

任何帮助都非常感谢!!!

答案1

在 Apache 2.2 中,要为相同的 ip:port 组合定义多个虚拟主机,例如 *:80,您需要在服务器配置上下文中定义此指令一次:

NameVirtualHost *:80

如果不定义此指令,Apache 2.2 将无法区分命名的虚拟主机。另请注意,此指令仅对 2.2.x 是必需/有效的,Apache 2.4.x 版本不再需要它。

相关内容