Уходим на технические работы легко и быстро в Nginx

Уходим на технические работы легко и быстро в Nginx

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Работа сайта невозможна без проведения технических работ, обновления контента, конфигураций или перезагрузки системы. Поскольку важным моментом всегда выступает время, то наша задача как можно быстрее и проще включить/отключить режим технических работ.

На время технических работ будем отдавать 503 код. Подразумевается, что это временное явление, которое завершится через определенное время. 503 код будет полезен для поисковых роботов, чтобы не пропала индексация сайта.

Шаг 1. Создаем виртуальный хост

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name example.com www.example.com;

root <path>/example.com;
error_page 503 /maintenance.html;

location /maintenance.html {
}

location / {
return 503;
}
}

Шаг 2. Создаем скрипты для быстрого включения/отключения

Отключаем сайт

1
2
3
4
5
6
7
#!/bin/bash

ln -s /etc/nginx/sites-available/maintenance /etc/nginx/sites-enabled/maintenance
rm -f /etc/nginx/sites-enabled/example.com
systemctl restart nginx

echo "example.com at maintenance mode!"

Включаем сайт

1
2
3
4
5
6
7
#!/bin/bash

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
rm -f /etc/nginx/sites-enabled/maintenance
systemctl restart nginx

echo "example.com is available now!"