首页 > 解决方案 > Apache 重定向到 Docker 端口

问题描述

我有一个运行 apache2 的服务器,它有一些位于 /var/www/ html 的应用程序

例子:

www.server.com/app

www.server.com/app2

在同一台服务器上,我让 Docker 在端口 9090 上运行应用程序

我想在浏览器中输入 url www.server.com/app3 并且请求将被重定向到端口 9090

我在可用的站点上尝试了此设置,但不起作用:

<VirtualHost *:80>
    ServerName server.com/app3
    ServerAlias /app3
    ProxyPreserveHost On
    ProxyPass /app3 http://server.com:8080/
    ProxyPassReverse /app3 http://server.com:8080/
</VirtualHost>

标签: dockerapache2mod-proxy

解决方案


您可以在 apache 配置中使用位置

NameVirtualHost         *:80
NameVirtualHost         *:443
<VirtualHost *:80>
    ServerName abrfanet.com
    ServerAlias www.abrfanet.com
    ServerAdmin xxx@gmail.com
 ProxyPass / http://container_name:PORT/
ProxyPassReverse  /  http://container_name:PORT/
ProxyPass /public !

ProxyRequests     Off
ProxyPreserveHost On
RewriteEngine On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

  <Location />
    ProxyPass          http://container_name:PORT/
    ProxyPassReverse   http://container_name:PORT/
    SetEnv              proxy-sendchunks 1
  </Location>

  <Location /app2/>
    ProxyPass          http://container_name2:PORT2/
    ProxyPassReverse   http://container_name2:PORT2/
    SetEnv              proxy-sendchunks 1
  </Location>
  <Location /app3/>
    ProxyPass          http://container_name3:PORT3/
    ProxyPassReverse   http://container_name3:PORT3/
    SetEnv              proxy-sendchunks 1
  </Location>
</VirtualHost>

我也建议你,你可以在 docker 中使用 apache,它更容易工作


推荐阅读