Apache2 vHost conf - 重定向到不同的服务器

Posted

技术标签:

【中文标题】Apache2 vHost conf - 重定向到不同的服务器【英文标题】:Apache2 vHost conf - redirect to different server 【发布时间】:2018-08-22 04:09:00 【问题描述】:

情况

服务器 1:Apache2 从端口 80 为常规网站提供服务

服务器 2:运行从端口 8080 提供的专用 JAVA 网站应用程序(应用程序默认)

使用异地 DNS 服务将我的域名的所有端口 80 请求定向到我的外部 IP。服务器 1 使用多个 vHost 配置文件指向 Apache2 html 文件夹,以便用户看到正确的网站。

问题

通过服务器 1 Apache2 vHost 配置文件将 1 域名定向到服务器 2,而不使用内部 DNS 服务器。

示例

默认网站的服务器 1 vHost 配置文件:

<VirtualHost *:80>
ServerName www.mdom.com
ServerAlias www.mdom.com

DocumentRoot /var/www/html/public_html

<Directory /var/www/html/public_html>
    Options -Indexes
    AllowOverride All
    <IfModule mod_auth_core.c>
        Require all granted
    </IfModule>
</Directory>

CustomLog /var/log/apache2/www.mdom.com-access.log "Combined"
ErrorLog /var/log/apache2/www.mdom.com-error.log
</VirtualHost>

用于定向到服务器 2 应用程序的服务器 1 vHost 配置文件:

<VirtualHost *:80>
ServerName app.mdom.com
ServerAlias app.mdom.com

DocumentRoot //server2:8080

<Directory //server2:8080>
    Options -Indexes
    AllowOverride All
    <IfModule mod_auth_core.c>
        Require all granted
    </IfModule>
</Directory>

CustomLog /var/log/apache2/app.mdom.com-access.log "Combined"
ErrorLog /var/log/apache2/app.mdom.com-error.log
</VirtualHost>

注意第二个文件中的//server2

但不知何故,这并没有真正起作用。它显示“禁止”,“您无权访问此服务器上的/”。

请记住,服务器 2 上没有安装 apache2,只要我在 url 中使用端口 8080,JAVA 网站在使用内部 IP 或外部域名通过端口 8080 调用服务器 2 时都可以正常工作。

问题

是否可以指示服务器 1 的 apache2 将app.mdom.com 重定向到服务器 2 的 8080 端口?

TL:DR?我试图做到彻底并提供尽可能多的信息

【问题讨论】:

【参考方案1】:

我已经阅读了应用程序的文档,并且在几页代码之间隐藏的某个地方有一小段内容介绍了如何使用 Apache2 设置代理以将该子域的请求路由到服务器 2。

示例

把它放在 Apache2 vHost 配置文件中:

<VirtualHost *:80>
    ServerName app.mdom.com
    ProxyPass /app http://server2:8080/app
    ProxyPassReverse /app http://server2:8080/app
</VirtualHost>

...并激活主机:

a2ensite app.mdom.com.conf

...然后重新配置Apache2来处理代理:

a2enmod proxy
a2enmod proxy_http

经过测试并且有效。

【讨论】:

以上是关于Apache2 vHost conf - 重定向到不同的服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法使用httpd-vhosts.conf从子域重定向到子子域

如何使用 VirtualHost 将 http://example.com 重定向到 apache2.conf 中的 https://example.com

httpd-vhosts.conf 中的重定向无法在 XAMPP 中按预期工作

xampp vhosts - 不需要的重定向到 https

禁用 ssl/https 重定向 apache2

LAMP架构(apache用户认证,域名重定向,apache访问日志)