Nginx: Как показывать разные сайты разным IP

Идея этой заметки пришла мне в голову когда мы начали работать над новой версией сайта 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 отличным от нашего видели нормальный рабочий сайт, в то время как мы на том же сервере в боевом окружении делали новую ещё более сногсшибательную версию нашего сайта.

Update cookies preferences