Перенаправлення з одного nginx на інший


10

У мене є два сервери (A і B) з NGINX. Сервер A обслуговує старий сайт, а сервер B обслуговує новий сайт. Я оновив свій DNS, але це досить повільно: в офісі я все ще бачу свій старий сайт:

subdomain.site.com

Як я можу перенаправити всі запити з сервера А для цього конкретного субдомену на сервер B?

Тепер вони обоє вирішують це в NGINX:

server {
  listen 80;
  server_name subdomain.site.ru;
  root /var/www/subdomain/public;
  passenger_enabled on;
}

Відповіді:


14

Оскільки вони обидва використовують одне і те саме ім’я сервера, ви не можете зробити просте перенаправлення.

Напевно, ви можете зробити якийсь проксі-сервер, проте, на наступному рядку на старому сервері:

upstream newserver {
  server 172.16.0.1:80;  # this is new server, by IP address
}

server {
  listen 80;
  server_name subdomain.site.ru;
  location / {
    proxy_set_header Host $host;
    proxy_pass http://newserver;
  }
}

Отже, в основному налаштуйте старий сервер так, щоб він передавав усі запити на новий сервер. Звичайно, введіть будь-яку конфігурацію, яка вам знадобиться для client_max_body_size і все це.


Як це можна зробити за допомогою SSL? Чи потрібен проксі-апарат, щоб отримати сертифікат ssl, а також сервер вище за течією?
earthmeLon

@earthmeLon У первісному запитанні цей проксі був тимчасовим заходом для оновлення DNS. У цьому випадку і нові, і старі сервери мали б сертифікат SSL. У разі висхідного потоку ви можете підключитися через SSL або через звичайний HTTP; оскільки ви керуєте обома полями, це буде відповідати вашим уподобанням.
cjc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.