nginx в качестве обратного прокси с отказоустойчивостью

Я управляю сайтом WordPress таким образом, что мой внешний интерфейс управляется Nginx. Nginx forwards Весь динамический контент для лака и последующего перенаправления на Apache. Теперь я хочу настроить таким образом, чтобы nginx перенаправлял запрос напрямую в apache, если лак остановлен / не удался. Как мне это сделать.

1 ответ

Это можно сделать методом балансировки нагрузки. Балансировка нагрузки Nginx использует upstream модуль. Самый простой способ - добавить блок восходящего потока в поле http в nginx.conf файл находится в /etc/nginx/,

http {

   upstream backend {

      server 127.0.0.1:8081; 
      server 127.0.0.1:8088;
    # server Backend_Server_IP;  
   } 
...

}

Здесь я посчитал, что лак работает на localhost с port 8081 пока работает Apache localhost с port 8088, Указывать IP-адрес и номер порта для Varnish здесь не нужно, но я добавил его на всякий случай.

После этого вам просто нужно отредактировать настройку сайта, которая находится в каталоге /etc/nginx/sites-available/, Просто откройте файл своего сайта и добавьте в него эти строки.

location / {
     # First attempt to serve request as file, then
     # as directory, then fall back to displaying a 404.
     try_files $uri $uri/ =404;

     proxy_pass http://backend;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
}

Теперь сохраните его, закройте и проверьте файл конфигурации nginx на наличие синтаксической ошибки, набрав:

   sudo nginx -t

Перезапустите службу nginx, если синтаксис в порядке.

sudo service nginx restart

Это будет работать как шарм. Вы можете проверить это, прекратив лаковое обслуживание, а затем посетить ваш сайт. nginx пропустит лак, если сервис лака завершился неудачей, а затем отправит свой запрос в apache:-)

Другие вопросы по тегам