Но, я так понял надо просто показать страницу и добавить хедер, тогда так:
error_page 503 =200 /maintenance.html;
location /maintenance.html {
такой вариант не подходит, т.к. ответы с кодом 200 как минимум
нелогичны, когда сервис недоступен всилу проводимых работ, а как
максимум нехорошо влияют на работу поисковых роботов и кеширующих
слоёв. Т.е. когда сайт закрыт на обслуживание должны выдаваться именно
страница с кодом 503 (как оговорено в стандарте) и по-возможности
хотелось бы иметь добавить к этой странице заголовок Retry-After.
Есть еще такой модуль:
http://wiki.nginx.org/HttpHeadersModule
да. директива add_header - часть этого модуля, но добавлять заголовки
к ответам с кодом 503 она не умеет. оттого и вопрошаю :)