Apache开启正向代理配置白名单访问

Apache作为老牌的前端中间件,目前仍被广泛使用。最近有需求需要使用apache做为小规模应用的正向代理服务器,需要严格控制代理白名单、访问白名单、禁止访问黑名单等功能。

1.开启代理

conf目录下配置文件httpd.conf,通过调整此文件配置所有参数。在配置文件后增加一下代码开启正向代理:

ProxyRequests On ProxyVia On

2.禁止访问

通过通配符配置,禁止所有访问:

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

3.开启独立域名白名单访问

下游应用控制个别域名可访问,其他禁止访问,通过域名+端口的方式实现:

proxy后跟着是允许通过的规则,可以支持通配符配置,例如*.toutiao.com,以上案例通过域名和端口固定通过的白名单域名,适用一下规则,仅允许一下ip通过:192.168.100.0,整个IP段运行通过。

提醒:

如果多个域名,在同一区块如果通过逗号隔开配置,apache是识别不了的,会出现一下错误提醒:

<Proxy mp.toutiao.com:443,mp...com:443> Order deny,allow Deny from all Allow from 192.168.100.0/255.255.255.0 </Proxy>

通过服务器curl测试访问:,返回错误,log产生错误日志:

curl: (56) Received HTTP code 403 from proxy after CONNECT

解决以上问题,需要多个区块单独分别配置,例如:

<Proxy mp.toutiao.com:443> Order deny,allow Deny from all Allow from 192.168.100.0/255.255.255.0 </Proxy> <Proxy mp...com:443> Order deny,allow Deny from all Allow from 192.168.100.0/255.255.255.0 </Proxy>