On Tue, Jul 10, 2012 at 03:20:08PM +0600, Nick Knutov wrote:
На уровене http есть блок allow ip/mask, после чего deny all;
Это временное решение под ддосом, но при этом хочется, чтобы по факту
deny all отдавался не error 403, а 503, чтобы страницы не выпали из
яндекса. Как это можно сделать?
Очевидное
error_page 403 =503 /error403.html; # на уровне http
почему-то не помогает:
Видимо для /error403.html действует то же самое deny all, в результате
статус ответа не может быть изменён на 503. Нужно для /error403.html
либо разрешить доступ, либо воспользоваться вариантом error_page c `='
(см. ниже).
wget -S -O - http://***.***/
--15:12:27-- http://***.***/
=> `-'
Resolving ***.***... 88.198.19.82
Connecting to ***.***|88.198.19.82|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 403 Forbidden
Server: nginx/1.2.0
Date: Tue, 10 Jul 2012 09:12:27 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
Keep-Alive: timeout=20
15:12:27 ERROR 403: Forbidden.
Заодним, кстати, хорошо было бы и Keep-Alive отключить для 503 и вообще
сразу закрывать соединение, но смотрю в документацию и не вижу как.
keepalive отключается теми же директивами, что и включается:
http://nginx.org/r/keepalive_disable/ru
http://nginx.org/r/keepalive_requests/ru
http://nginx.org/r/keepalive_timeout/ru
http {
server {
keepalive_timeout 75 75;
allow 127.0.0.1;
deny all;
error_page 403 = @403;
location @403 {
keepalive_timeout 0;
return 503;
}
}
}
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru