apache - apache2反向代理到docker容器403被禁止?
问题描述
我已经在 VPS 上的 Ubuntu 18.04 上设置了 apache2 - 我遇到了 SSL 证书问题,但无论如何,我已经将默认 conf 设置为反向代理到一个不安全的 docker 容器,目前正在运行一个测试节点应用程序(我想最终使用 .net 核心。)这是 conf 文件中的设置:
<VirtualHost 77.68.7.249:443>
ServerName www.thegatehousewereham.com
ServerAlias *.thegatehousewereham.com
ServerAdmin webmaster@thegatehousewereham.com
ProxyPreserveHost On
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
<Proxy http://localhost:8000/*>
Order deny,allow
Allow from all
</Proxy>
我在浏览器中收到 403 禁止 - 在 error.log 中我看到:
[2020 年 1 月 21 日星期二 20:56:11.109712] [authz_core:error] [pid 1251:tid 140677341959936] [客户端 94.197.37.81:53133] AH01630:客户端被服务器配置拒绝:代理:http://localhost:8000/ [ 2020 年 1 月 21 日星期二 20:56:11.216718] [authz_core:error] [pid 1251:tid 140677493028608] [客户端 94.197.37.81:53133] AH01630:客户端被服务器配置拒绝:代理:http://localhost:8000/favicon。 ico,推荐人:https : //www.thegatehousewereham.com/r
这可能是防火墙问题吗?
任何帮助表示赞赏。在这上面花了太长时间,只想继续。谢谢,安迪。
更新:我使用的是 apache 2.4,我不确定那个代理指令。我把它改成
<Proxy http://localhost:8000/*>
Require all granted
</Proxy>
现在我看到了:
[2020 年 1 月 21 日星期二 21:57:01.084817] [proxy:warn] [pid 6618:tid 139968717412096] [client 94.197.37.81:54689] AH01144:没有协议处理程序对 URL /(方案“http”)有效。如果您使用的是 DSO 版本的 mod_proxy,请确保代理子模块包含在使用 LoadModule 的配置中。[2020 年 1 月 21 日星期二 21:57:01.169791] [proxy:warn] [pid 6618:tid 139968709019392] [client 94.197.37.81:54688] AH01144: 没有协议处理程序对 URL /favicon.ico 有效(方案'http' )。如果您使用的是 mod_proxy 的 DSO 版本,请确保代理子模块包含在使用 LoadModule 的配置中。参考:https ://thegatehousewereham.com/
我不确定这是一种改进,但它是不同的。
解决方案
好的,所以使用正确的代理方案让我有所收获——我想确保我已经启用了模块代理、proxy_http 和 proxy_balancer——前两个已经启用——它“说”的第三个已经启用,但这是输出:
a2enmod proxy_balancer 考虑 proxy_balancer 的依赖代理:模块代理已启用 考虑 proxy_balancer 的依赖别名:模块别名已启用 考虑 proxy_balancer 的依赖 slotmem_shm:启用模块 slotmem_shm。启用模块 proxy_balancer。要激活新配置,您需要运行:systemctl restart apache2
现在它似乎工作正常 - 我看到应用程序正常,它都在 SSL 下。我们将看看它是如何从这里开始的。
推荐阅读
- kotlin - 这段代码中关于 Kotlin 的 lambda 的语法是什么?
- multithreading - 当线程被调度在不同的 CPU 内核上时,预期的内存语义(例如写入后读取)会发生什么情况?
- python-3.x - Python 中的动态类创建:TypeError: __init__() 采用 1 个位置参数,但给出了 2 个
- python - 使用 Python Selenium webdriver 时出现站点阻塞和验证码
- python - 访问下拉菜单中的选项时获取“StaleElementReferenceException”
- java - 如何在一行中显示数组列表中的所有项目
- c# - 解析器导致“文档没有页面”
- statistics - 你能从 Orange 的“特征统计”工具中创建一个表格输出吗?
- r - R sum vectors in list of list
- logging - Serilog 解构特定于接收器的策略