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

时间:2018-03-13 19:04:13

标签: redirect apache2 port virtualhost

情况

服务器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>

服务器1 vHost配置文件,用于指向服务器2应用程序:

<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,只要我在网址中使用端口8080,JAVA网站就可以使用内部IP或外部域名通过端口8080呼叫服务器2。

问题

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

TL:DR? 我正在努力提供尽可能多的信息

1 个答案:

答案 0 :(得分:3)

我已经阅读了应用程序的文档以及隐藏在几页代码之间的某处,有一小段如何使用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

经过测试和工作。