我在nginx前端后面运行了很多网站。我的所有网站都在Python / Django中。我在日志中看到很多黑客为各种php应用程序爬行 - 我想在nginx上阻止它们(返回404),而不会攻击我的应用程序服务器。
我想在我的nginx conf文件中全局执行此操作,因此它适用于我所有特定于站点的配置。
那么,我该怎么做:
答案 0 :(得分:21)
尝试:
location ~ (\.php$|myadmin) {
return 403;
}
答案 1 :(得分:5)
location
必须仅显示在server
内,http
内不允许显示。
因此,唯一的选择是创建一个包含公共位置的文件,并将include
创建到server
中。
答案 2 :(得分:3)
补充Dayo答案,我们还必须添加一个尾随的美元,否则任何像jquery.mousescroller.js
这样的文件也会被阻止。
location ~ (\.php$|myadmin) {
return 403;
}
答案 3 :(得分:0)
您还可以尝试if
和正则表达式。例如。为了使用排除规则为静态文件提供服务器,我按照以下步骤进行操作,以便从其他文件夹树中提供调试js文件。 :
location /some/virtual/path/ {
if( $request_uri !~ '\.js$' ) { return 404 ; }
alias /some/real/path/
}