当创建从 PhantomJS 到托管在 localhost 上的域的连接时,客户端 IP 被检测为服务器外部 IP。
Apache 被配置为具有htpasswd
,并且它被设置为允许本地连接绕过它。但在错误日志中我得到:
[Mon May 27 10:23:31 2013] [error] [client 123.215.64.94] user not found: /path/to/file
123.215.64.94
是服务器外部 IP 地址之一。
PhatomJS 脚本很简单:
var page = require('webpage').create();
page.open('http://mysite.com/path/to/file', function () {
page.render('output.png');
phantom.exit();
});
那么如何配置 Apache 以绕过 htpasswd(无需将服务器外部 IP 放在 Apache 配置中)?
阿帕奇配置是:
<VirtualHost *:80>
ServerName mysite.com
DocumentRoot /home/www-mysite/public
<Directory /home/www-mysite/public>
Options -Indexes FollowSymLinks
AllowOverride all
AuthUserFile /home/www-data/.htpasswd
AuthName "Password Protected"
AuthType Basic
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from 127.0.0.1 ::1
</Directory>
</VirtualHost>