Короткие «напоминалки»

* практическия вся информация собрана из рассылки . Чтобы не рыться, решил собрать некоторые моменты тут, в одной куче 🙂

HTTP redirect с requested домена на какой угодно адрес (target_domain.tld)
редирект без использования location:

server {
listen IP:80;
server_name requested_domain.tld;
rewrite ^ http://target_domain.tld$request_uri;
}

редирект с использованием location:

server {
listen IP:80;
server_name requested_domain.tld;
location = / { rewrite ^ http://redirect.to/; }
}

как максимально просто запретить запросы с определенными user-agent ?
можно сделать примерно так:

if ($http_user_agent ~ AESOP_com_SpiderMan|Alexibot|Anonymouse\.org|asterias|attach|BackDoorBot|BackWeb|Bandit|Baiduspider|BatchFTP|Bigfoot)
return 503;
}

как сделать так, чтобы пользователь набрав some.site.ru и если этот some не прописан в конфиге редиректился на основной сайт, т.е. www.site.ru ?
Определить server с listen default и уже в нем делать:
rewrite (.*) http://www.site.ru/$1 permanent;

Можно ли для определённого локейшна каким-либо образом реализовать такой алгоритм: смотрим на файл, если находим его-отдаём. Если такого файла нет-запрашиваем у бэкэнда.
это одно из самых распространенных применений nginx:
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#error_page


location / {
root /home/site1/public_html;
error_page 404 = @backend;
# если нужно поменять код ответа, укажите его после =
# error_page 404 =200 @backend;
}location @backend {
proxy_set_header
...
proxy_pass http://127.0.0.1:123;
}