Я пытаюсь заблокировать и перенаправить весь трафик на сайт. Это правильный способ сделать это?
EDIT: я хотел бы заблокировать некоторые диапазоны 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;
}
}
Что для вас означает «блокировать и перенаправлять»? Ваша опубликованная конфигурация тоже не работает. Он выборочно блокирует набор определенных запрашивающих cidr, но определенно не «всех». Те, кого он не блокирует, обслуживает /home/user/public_html
если uri совпадает с некоторыми суффиксами, в противном случае он перенаправляет запрос на какой-то бэкэнд через proxy_pass. Он откажет всем, запрашивающим uri, который соответствует /.ht
.
Если вы хотите перенаправить, вы можете использовать return
директива для возврата статуса 301 или 302 и целевой URL, который вы также хотите перенаправить.
Чтобы просто заблокировать все, скажите:
location ^~ / {
deny all;
}
Или просто выключите свой веб-сервер :)