从一个Nginx重定向到另一个


10

我有两台带有NGINX的服务器(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;
}

Answers:


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证书以及上游服务器?
EarthmeL13年

@earthmeLon在原始问题中,此代理是DNS更新的临时措施。在这种情况下,新服务器和旧服务器都将具有SSL证书。对于上游,您可以通过SSL或普通HTTP连接;由于您同时控制了两个框,因此完全取决于您的偏好。
cjc 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.