Идея этой заметки пришла мне в голову когда мы начали работать над новой версией сайта Zaltsman Media. Передо мной стояла задача показывать всем пользователям старую версию сайта, а в нашем офисе работать с новой версией, на том же сервере и на настоящем домене.
Для того, что бы провернуть такой трюк я изменил немного настройки нашего Nginx сервера. До внесения правок конфиг выглядет вот так:
server {
listen 80;
root /var/www/zalts-man.com;
index index.php.htm;
server_name zalts-man.com;
}
Для того, что бы со всех ip был виден старый сайт, а для нас новый, я переименовал папку со старым сайтом в zaltsman_old, а новый положил в папку с именем домена zalts-man.com и сделал вот такой хитрый конфиг:
server {
listen 80;
index index.php.htm;
server_name zalts-man.com;
root /$root;
if ($remote_addr = 78.82.189.130) {
set $root /var/www/zalts-man.com;
}
if ($remote_addr != 78.82.189.130) {
set $root /var/www/zaltsman_old;
}
}
В результате все пользователи с IP отличным от нашего видели нормальный рабочий сайт, в то время как мы на том же сервере в боевом окружении делали новую ещё более сногсшибательную версию нашего сайта.