我有nginx在Debian 7没有 cpanel。
我正在像这样设置我的 Crontab:
*/45 * * * * wget "http://example.com/cron-url.php" >/dev/null 2>&1
上述 cron 被阻止并出现 403 禁止:
--2014-12-10 05:40:01-- http://example.com/cron-url.php
Connecting to xyz.xx.xx.xxx:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2014-12-10 05:40:01 ERROR 403: Forbidden.
在这里搜索和谷歌搜索后,我了解到我的服务器可能阻止了 wget。我查看了我的 nginx 配置文件,我认为应该是由于以下原因:
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
对于 cron 命令,我必须使用它的 URL,而脚本路径的绝对链接不起作用。现在,如果我需要允许 cron 工作而不被阻止,我该怎么办?我在想也许我需要允许 wget 从我自己的服务器运行,但不知道如何使用 nginx 来做到这一点。有人能帮我解决这个 cron 问题吗?
答案1
从 nginx 配置中删除wget
排除,或者在命令中添加类似这样的选项wget
:
--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" --referrer whatever.example.com