我正在尝试将应用程序路由到内部服务器上的子路由,使用Gunicorn和我的Django应用程序。我的虚拟主机文件如下所示:
LoadModule proxy_module /usr/lib64/apache2/mod_proxy.so
LoadModule proxy_http_module /usr/lib64/apache2/mod_proxy_http.so
<VirtualHost *:80>
ServerName 172.16.1.81
<Location "/mycustomapp">
ProxyPreserveHost On
ProxyPass http://127.0.0.1:9090
ProxyPassReverse http://127.0.0.1:9090
</Location>
</VirtualHost>
当我导航到172.16.1.81/mycustomapp时,在尝试导航到该路由上的应用程序时,我一直收到404未找到的错误。还有别的我在这里做错了吗?
好的,我明白了。对于将来遇到此类问题的任何人,解决方案在于在VirtualHost配置中使用ServerPath
指令。例如,如果您希望在172.15.1.20/app1处提供应用程序,而在172.15.1.20/app2处提供另一个应用程序(通过端口转发到侦听端口的进程),则虚拟主机配置将如下所示:
LoadModule proxy_module /usr/lib64/apache2/mod_proxy.so
LoadModule proxy_http_module /usr/lib64/apache2/mod_proxy_http.so
<VirtualHost *:80>
ServerName 172.15.1.20
ProxyPreserveHost On
ProxyPass /app1 http://127.0.0.1:9090
ProxyPassReverse /app1 http://127.0.0.1:9090
ProxyPass /app2 http://127.0.0.1:9080
ProxyPassReverse /app2 http://127.0.0.1:9080
</VirtualHost>