Nginx

Nginx:AWS Route 53:ELB:裸重定向

  • January 6, 2015

設置

我有兩個在 Opsworks 層中執行的 rails 應用程序實例。我正在使用 Route 53 和 ELB 將流量路由到我的層。

目標

將裸域流量重定向到我的 www 域。chicken.com -> www.chicken.com

我嘗試了什麼

我改變了我的 nginx conf(在一個實例上)來解決這個問題。我添加了以下內容:

server {
listen 80;
server_name chicken.com;
return 301 $scheme://www.chicken.com$request_uri;
}
... rest of config here

結果

實例不再被其 IP 擊中。

ELB 將我更改的實例標記為“停止服務”,因為 IP 無法再訪問它(執行狀況檢查失敗)。

問題

如何將裸域路由到 www 域同時保持我的 ELB 健康檢查滿意?

您需要設置一些在執行狀況檢查時返回 2xx 的內容,目前 301 使 ELB 認為它已停止服務,您可以放置​​類似這樣的內容

server {
listen 80;
server_name chicken.com;

location ^~ /health {
  proxy_pass http://my_proxy;
}

location / {
  return 301 $scheme://www.chicken.com$request_uri;
}

}

server {
listen 80;
server_name www.chicken.com;

location / {
  proxy_pass http://my_proxy;
}
}

引用自:https://serverfault.com/questions/656524