На днях заглянул в разросшийся error.log nginx’a и обнаружил там ошибки вида:
2013/01/08 09:31:40 [error] 17320#0: *13628 open() "...htdocs/rss.xml" failed (2: No such file or directory), client: 74.125.182.34, server: www.prolinux.org, request: "GET /rss.xml HTTP/1.1", host: "www.prolinux.org"
Это Google пытается достучаться до стандартной друпаловской rss’ки и не может.
Виной тому следующий location в конфиге nginx:
location ~* \.(js|css|rdf|xml|ico|txt|gif|jpg|png|jpeg|html)$ {
root ...htdocs/;
access_log off;
}
Эта конфигурация обслуживает статические файлы, а в Drupal rss.xml генерится динамически, что и вызывает ошибку.
Для её исправления нужно перед этими строками указать новый location:
location = /rss.xml {
rewrite ^ /index.php?q=rss.xml;
}
Контрольный ** sudo service nginx reload** и проблема решена.
Ссылка на источник.