docker - 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>
解决方案
您可以在 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,它更容易工作
推荐阅读
- mongodb - 可以 kafka 连接 - mongo 源作为集群运行(max.tasks > 1)
- android - 如何在系统用户上运行系统 Android 应用程序
- azure - Azure,在 Web 应用停止或关闭时收到通知
- jquery - 隐藏或显示 none 在 else 条件下不起作用
- linux - 在 Linux 中的文件内分组依据
- ruby-on-rails - Ruby on Rails 线程
- java - JAVA:printf()的剩余百分比不起作用
- c# - 如何授予权限以便我的代码可以创建新文档
- ruby-on-rails - Paypal 环境变量凭据
- laravel - Laravel Postman crud 在 url 中使用 id