Mengarahkan dari satu nginx ke yang lain

10

Saya sudah mendapat dua server (A dan B) dengan NGINX. Server A melayani situs lama dan server B melayani situs baru. Saya telah memperbarui DNS saya tetapi sangat lambat: di kantor saya, saya masih melihat situs lama saya:

subdomain.site.com

Bagaimana saya bisa mengalihkan semua permintaan dari server A untuk subdomain khusus ini ke server B?

Sekarang mereka berdua ditangani dengan ini di NGINX:

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

Jawaban:

14

Karena keduanya menggunakan nama server yang sama, Anda tidak dapat melakukan pengalihan sederhana.

Anda mungkin dapat melakukan semacam proxy, di sepanjang baris berikut ini di server lama:

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;
  }
}

Jadi, pada dasarnya, konfigurasikan server lama sehingga akan meneruskan semua permintaan ke server baru. Tentu saja, masukkan konfigurasi apa pun yang Anda perlukan untuk client_max_body_size dan semua itu.

cjc
sumber
Bagaimana ini bisa dilakukan dengan menggunakan SSL? Apakah mesin proxy memerlukan sertifikat ssl serta server upstream?
earthmeLon
@earthmeLon Dalam pertanyaan awal, proksi ini adalah tindakan sementara untuk pembaruan DNS. Dalam hal ini, server baru dan lama akan memiliki sertifikat SSL. Dalam hal upstream, Anda dapat terhubung melalui SSL atau melalui HTTP biasa; karena Anda mengontrol kedua kotak, itu akan menjadi pilihan Anda.
cjc