Nginx

在 Nginx 中,如何在維護子域的同時將所有 http 請求重寫為 https?

  • February 28, 2019

我想將我的網路伺服器上的所有 http 請求重寫為 https 請求,我從以下內容開始:

伺服器 {
聽 80;

地點 / {
重寫 ^(.*) https://mysite.com$1 永久;
}
...

一個問題是這會剝離任何子域資訊(例如,node1.mysite.com/folder),我如何重寫以上內容以將所有內容重新路由到 https 並維護子域?

新版本nginx的正確方法

結果我對這個問題的第一個答案在某些時候是正確的,但它變成了另一個陷阱 - 要保持最新狀態,請檢查Taxing rewrite pitfalls

我已經被許多 SE 使用者更正,所以歸功於他們,但更重要的是,這裡是正確的程式碼:

server {
      listen         80;
      server_name    my.domain.com;
      return         301 https://$server_name$request_uri;
}

server {
      listen         443 ssl;
      server_name    my.domain.com;
      # add Strict-Transport-Security to prevent man in the middle attacks
      add_header Strict-Transport-Security "max-age=31536000" always; 

      [....]
}

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