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

Den*_*niz 2 port redirect apache2 virtualhost

情况

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

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

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

问题

在不使用内部 DNS 服务器的情况下,通过服务器 1 Apache2 vHost 配置文件将 1 个域名定向到服务器 2。

这个例子

默认网站的服务器 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>
Run Code Online (Sandbox Code Playgroud)

用于定向到服务器 2 应用程序的服务器 1 虚拟主机配置文件:

<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>
Run Code Online (Sandbox Code Playgroud)

//server2第二个文件中的通知

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

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

问题

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

特尔:博士?我正在努力做到彻底并提供尽可能多的信息

Den*_*niz 5

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

例子

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

<VirtualHost *:80>
    ServerName app.mdom.com
    ProxyPass /app http://server2:8080/app
    ProxyPassReverse /app http://server2:8080/app
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

...并激活主机:

a2ensite app.mdom.com.conf
Run Code Online (Sandbox Code Playgroud)

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

a2enmod proxy
a2enmod proxy_http
Run Code Online (Sandbox Code Playgroud)

测试和工作。