あるnginxから別のnginxへのリダイレクト


10

NGINXを備えた2つのサーバー(AとB)があります。サーバーAは古いサイトにサービスを提供し、サーバーBは新しいサイトにサービスを提供しています。DNSを更新しましたが、かなり時間がかかります。私のオフィスでは、古いサイトがまだ表示されています。

subdomain.site.com

この特定のサブドメインに対するサーバーAからのすべての要求をサーバーBにリダイレクトするにはどうすればよいですか?

これで両方がNGINXでこれで処理されます:

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

回答:


14

どちらも同じserver_nameを使用しているため、単純なリダイレクトを行うことはできません。

ただし、古いサーバーでは、次のようにプロキシを実行できます。

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 2013

@earthmeLon元の質問では、このプロキシはDNS更新の一時的な手段でした。その場合、新しいサーバーと古いサーバーの両方にSSL証明書があります。アップストリームの場合、SSLまたはプレーンHTTPを介して接続できます。あなたは両方のボックスを制御するので、それはあなたの好み次第です。
cjc 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.