我使用 Apache 2.4 作为 Jenkins(在端口 8080 上本地运行的 Web 服务)的反向代理。我尝试使用 将此服务的访问限制在内部网络中Require
。我的 VirtualHost:
<VirtualHost *:443>
ServerName jenkins.domain.com
ServerAdmin ...
SSLEngine on
...
<Location />
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
Require ip 10.8.0
</RequireAny>
</Location>
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.domain.com/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>
不知何故,这导致所有人都无法使用该服务,包括具有受信任 IP(如 10.8.0.1)的客户端。我做错了什么?
答案1
我也使用 Apache 进行反向代理,ProxyPass
并没有遇到需要声明指令<Proxy>
来限制访问的情况,因为<Location>
已经足够了。
您可以尝试注释掉以下部分吗:
<Proxy *> Require all granted </Proxy>