Архив ‘очапге отаке’ Категории

IAD получил эпик фэйл

8 февраля, 2011 | 8 комментариев

Правил конфиги нгинкса и обнаружил, что пропала вся статика напрочь, на всех доменах, кроме того, к которому подвязывал зону РФ.
Вроде обычный конфиг:

----вырезано----
     server
    {
        listen       айпишнег:80;
        server_name  site.ru www.site.ru мухрю.xn--p1ai;
 
        location /
        {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
 
            proxy_pass http://айпишнег:81/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
        }
        location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$
    	{
            root /var/www/site.ru/;
	}
    }
 
    server
    {
        listen       айпишнег:80;
#       server_name  .my;
 
        location /
        {
            client_max_body_size 8M;
            client_body_buffer_size 128k;
 
            proxy_pass http://апача:81/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
        }
        location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$
    	{
            root /var/www/$host/;
		}
    }

но ошибка заключается в том, что если нгинкс не находит правило для полученного запроса, то передаёт запрос первому серверу!

Если в запросе нет заголовка «Host» или же в нём указано имя, неописанное ни в одном сервере, слушающем на адресе и порту, на которые пришёл запрос, то запрос будет обслужен сервером, у которого первым описаны эти адрес и порт.

Об этом нужно помнить.
Решение — поменять блоки server местами