Chuyển hướng từ nginx này sang nginx khác


10

Tôi đã có hai máy chủ (A và B) với NGINX. Máy chủ A đang phục vụ trang web cũ và máy chủ B đang phục vụ một trang web mới. Tôi đã cập nhật DNS của mình nhưng khá chậm: trong văn phòng của tôi, tôi vẫn thấy trang web cũ của mình:

tên miền phụ.site.com

Làm cách nào tôi có thể chuyển hướng tất cả các yêu cầu từ máy chủ A cho tên miền phụ cụ thể này đến máy chủ B?

Bây giờ cả hai đều được xử lý với điều này trong NGINX:

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

Câu trả lời:


14

Vì cả hai đều sử dụng cùng một tên máy chủ, bạn không thể thực hiện chuyển hướng đơn giản.

Tuy nhiên, bạn có thể thực hiện một số loại proxy, dọc theo các dòng sau trên máy chủ cũ:

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

Vì vậy, về cơ bản, cấu hình máy chủ cũ để nó sẽ chuyển tất cả các yêu cầu đến máy chủ mới. Tất nhiên, đặt bất kỳ cấu hình nào bạn sẽ cần cho client_max_body_size và tất cả những thứ đó.


Làm thế nào điều này có thể được thực hiện bằng SSL? Máy proxy có cần chứng chỉ ssl cũng như máy chủ ngược dòng không?
earthmeLon

@earthmeLon Trong câu hỏi ban đầu, proxy này là một biện pháp tạm thời để cập nhật DNS. Trong trường hợp đó, cả máy chủ mới và cũ đều có chứng chỉ SSL. Trong trường hợp ngược dòng, bạn có thể kết nối qua SSL hoặc qua HTTP đơn giản; vì bạn kiểm soát cả hai hộp, nên tùy theo sở thích của bạn.
cjc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.