Страница обслуживания nginx с проблемой содержимого

Чтобы показывать страницу обслуживания во время развертывания, я всегда использовал следующую конфигурацию в nginx:

if (-f /home/shared/system/maintenance.html) {
    return 503;
}

error_page 503 @maintenance;

location @maintenance {
    root /home/shared/errors;
    rewrite ^(.*)$ /maintenance.html break;
}

И все было в порядке, пока мне не понадобилось добавить статический контент на страницу обслуживания (изображения, таблицы стилей и т. д.) )

Статический контент не работает с такими журналами в error.log:

2011/05/05 02:47:20 [notice] 13760#0: *6 "^(.*)$" matches "/some.jpg", client: x.x.x.x, server: server.com, request: "GET /some.jpg HTTP/1.1", host: "server.com"
2011/05/05 02:47:20 [notice] 13760#0: *6 rewritten data: "/maintenance.html", args: "", client: x.x.x.x, server: server.com, request: "GET /some.jpg 2 HTTP/1.1", host: "server.com"

Что логично - если я все перепишу в maintenance.html, это означает, что статический контент не является исключением.

Но я не могу найти ни одного. правильное решение для перенаправления на каждый файл, кроме тех, которые физически существуют в папке root / home / shared / errors .

PS. / home / shared / errors не имеет общих ресурсов с общей папкой проекта - это полностью отдельная папка (даже без каких-либо символических ссылок на / current для проекта.

17
задан Wile E. 12 May 2011 в 20:46
поделиться