我有一个公共网站,其中包含一些仅供私人/内部使用的 URL/目录。这些私人区域只能通过特定的 IP 地址或已知的用户名/密码访问。
目前我通过 .htaccess 文件实现这一点,如下所示:
AuthType Basic
AuthName "Protected Area"
AuthUserFile /path/to/.htpasswd
SetEnvIf Remote_Addr 1.2.3.4 trusted
SetEnvIf X-Forwarded-For 1.2.3.4 trusted
# (Note I am aware X-Forwarded-For can be spoofed)
<RequireAny>
Require env trusted
Require valid-user
</RequireAny>
问题是我想在我的服务器前面添加 Varnish 以提供缓存。显然,现有设置不适用于 Varnish,因为它无法以这种方式缓存受 .htaccess 文件限制的内容。
有没有办法我可以继续使用我的 .htaccess 文件来保护我的内部页面,或者我可以使用类似的方法来将安全责任放在 Varnish 本身上,它不需要每次我想要更改 Varnish 的 VCL 文件添加或修改限制?