【发布时间】:2019-12-20 16:19:47
【问题描述】:
我正在尝试限制对我的 Apache 2.4 服务器上的反向代理的访问。它适用于 http,但不适用于 https。
我在另一台服务器上设置了 ProxyPass 和 ProxyPassReverse,并且有 2 个包含相同 Require ip 行的 .conf 文件。 http 反向代理有效,但 https 表示“客户端被服务器配置拒绝。
服务器是 10.0.1.1,端点是 10.0.1.2。
http_vhost.conf
<Location />
Require ip 10.0.0.0/16
</Location>
ProxyPass / http://10.0.1.2/
ProxyPassReverse / http://10.0.1.2/
https_vhost.conf
<Location />
Require ip 10.0.0.0/16
</Location>
SSLProxyEngine on
ProxyPass / http://10.0.1.2/
ProxyPassReverse / http://10.0.1.2/
从 10.0.1.100 ip 地址访问 http_vhost,vhost 按预期工作。 10.0.1.2 上的网站内容按预期显示。
从同一个10.0.1.100 ip地址访问https_vhost,vhost内容显示
Forbidden. You don't have permission to access / on this server.
https_vhost 在 access.log 中显示以下内容:
127.0.0.1 - - [14/Aug/2019:12:47:21 +0800] "GET / HTTP/1.1" 403 6692 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"
但在error.log中显示如下:
[Wed Aug 14 12:48:04.604656 2019] [authz_core:error] [pid 4671] [client 127.0.0.1:54607] AH01630: client denied by server configuration: http://10.0.1.2/
http 服务器的 access.log 条目是:
mydomain.com:80 10.0.1.100 - - [14/Aug/2019:18:13:35 +0800] "GET / HTTP/1.1" 200 348 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"
当我评论“需要 ip”行时,http 和 https 都按预期工作。
有人知道怎么解决吗?
【问题讨论】:
-
http_site.conf和https_site.conf之间还有其他区别吗? -
http_site.conf和https_site.conf之间的唯一区别是端口 80 与 443 的声明,以及 SSLEngine + SSLCertificateFile 行。但就限制而言,Require 行是唯一的游戏规则改变者.. -
能否显示成功http请求的访问日志行
-
从http请求,访问日志行是:
vhost.mydomain.com:80 10.0.1.100 - - [14/Aug/2019:18:13:35 +0800] "GET / HTTP/1.1" 200 348 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15" -
我可能想提一下这两个条目是虚拟主机,服务器有多个虚拟主机它是反向代理,但这是我第一次遇到这个问题,因为有限制访问的请求通过 IP 地址到一个特定的虚拟主机。
标签: apache reverse-proxy apache-config