Имеем два ip адреса, с которых нужно пускать клиентов независимо от текущего режима сайта (для примера 67.81.43.124 и 67.23.44.5). Чтобы для включения maintenance режима не нужно было дергать администратора, будем считать наличие файла maintenance.flag в корне сайта, признаком включения maintenance режима.
Я использую nginx из Debian Squeeze и примеры будут ориентированы на него.
Для поддержки нового режима я добавил несколько секций в /etc/nginx/sites-enabled/www.example.com
geo $show_maintenance_page { default yes; 67.81.43.124 no; 67.23.44.5 no; } server { listen 80; server_name www.example.com example.com; if ( -f /var/www/www.example.com/maintenance.flag ) { set $maintenance y; } if ( $show_maintenance_page = yes ) { set $maintenance y$maintenance; } if ( $maintenance = yy ) { return 503; } error_page 503 @maintenance; location @maintenance { root /var/www/maintenance; rewrite ^(.*)$ /maintenance.html break; } # All other config }
Содержимое /var/www/maintenance у меня существует еще с прежнего варианта, который я описывал ранее. Теперь чтобы перевести сайт в режим maintenance нужно создать файл maintenance.flag в корне сайта (/var/www/www.example.com). После этого всем посетителям будет выдавать maintenance страницу, а для тех, кто заходит с адресов 67.81.43.124 или 67.23.44.5 будет доступен сайт. Чтобы выключить maintenance достаточно удалить файл maintenance.flag.
Комментариев нет:
Отправить комментарий