Обнаружил вот какую вещь. Если положить битый SSL сертификат на один из
серверов, то nginx не запускается вообще. Лучше наверное сделать, чтобы
он выводил предупреждение, но запускался, убирая поддержку HTTPS для
данного сервера. Ведь если есть несколько секций server, то все
остальные по уму должны работать.
nginx пишет вот что:
2005/01/27 12:31:44 [emerg] 28900#0:
SSL_CTX_use_certificate_file("/usr/local/nginx/conf/ssl/server.cert")
failed (SSL: error:0906D064:PEM routines:PEM_read_bio:bad base64 decode)
У меня например пользователь сайта может сам вешать себе сертификат и
это может стать проблемой.
На мой взгляд, о проблеме нужно узнавать как можно раньше.
В nginx для этого предусмотрены три вещи:
1) ключ -t для тестирования конфигурации, nginx при этом, кроме текста,
возвращает код 0 или 1.
2) если при переконфигурации (-HUP) новая конфигурация окажется плохой,
то используется старая.
3) для вращения логов есть специальный сигнал -USR1, поэтому логи
можно легко вращать в полночь, не боясь, что сайт превратится в тыкву
из-за ошибки в конфигурации.
На мой взгляд, при смене сертификата нужно или запускать nginx -t,
или openssl что-то-там-для-тестирования.
В случае виртуального хостинга это будет значить неизменность конфигурации
для всех пользователей при ошибке одного из многих. Лучше все-таки
игнорировать сбойный
сервер, а остальные грузить, так будет изменяться конфигурация всех сайтов
других клиентов.
Мне непонятно, почему будет неизменность конфигурации ?
Конфигурация меняется скриптом или человеком ?
Если человеком, то он может руками запретить такой севрер.
Игорь Сысоев
http://sysoev.ru