我正在尝试阻止并重定向到某个网站的所有流量。这是正确的做法吗?
编辑:我想阻止某些范围的 IP 并将它们重定向到一个 URL。
编辑:通过在 nginx 中阻止,这是否会阻止对后端 Apache 的所有访问,从而不再受到攻击?
server {
error_log /var/log/nginx/vhost-error_log warn;
listen 1.2.3.4:80;
server_name domain.com www.domain.com;
access_log /usr/local/apache/domlogs/domain.com-bytes_log bytes_log;
access_log /usr/local/apache/domlogs/domain.com combined;
root /home/user/public_html;
location / {
deny 220.181.0.0/16;
deny 124.115.0.0/16;
deny 1.202.0.0/16;
deny 208.115.0.0/16;
deny 199.58.0.0/16;
deny 220.181.0.0/16;
deny 124.115.0.0/16;
deny 83.149.0.0/16;
deny 178.77.0.0/16;
deny 65.55.0.0/16;
deny 123.125.0.0/16;
deny 82.128.0.0/16;
deny 157.55.0.0/16;
deny 199.0.0.0/8;
deny 212.90.0.0/16;
location ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso)$ {
expires 1d;
try_files $uri @backend;
}
error_page 405 = @backend;
add_header X-Cache "HIT from Backend";
proxy_pass http://1.2.3.4:8081;
include proxy.inc;
}
location @backend {
internal;
proxy_pass http://1.2.3.4:8081;
include proxy.inc;
}
location ~ .*\.(php|jsp|cgi|pl|py)?$ {
proxy_pass http://1.2.3.4:8081;
include proxy.inc;
}
location ~ /\.ht {
deny all;
}
}
答案1
“阻止和重定向”对您来说意味着什么?您发布的配置都没有这样做。它有选择地阻止一组特定的请求 cidr,但肯定不是“全部”。/home/user/public_html
如果 uri 与某些后缀匹配,它不会阻止它提供的 cidr,否则它会通过 proxy_pass 将请求转发到某个后端。它将拒绝所有请求匹配 uri 的人/.ht
。
如果你希望重定向,你可以使用return
指令返回 301 或 302 状态以及您希望重定向的目标 URL。
要简单地阻止一切,请说:
location ^~ / {
deny all;
}
或者直接关闭你的网络服务器:)