Ubuntu

Nginx 嵌入式變數 - 如何獲取請求中使用的域名?

  • January 27, 2018

一台伺服器使用多個域名時,如何獲取請求中目前使用的域名?我在它的配置文件中使用了 Nginx 的嵌入式變數。

我已經設置了 OpenSSL 並有一個重定向適用於我的第一個域,因為如您所見,我在配置文件的底部明確地重定向到它。因此,任何其他域上的 HTTP 請求都會重定向到第一個域以進行安全連接。是否有一個我可以使用的嵌入變數,例如,類似於$request_uri,但只返回客戶端使用的給定域名?

這是我正在執行重定向的伺服器塊。

server {
       listen 80;
       listen [::]:80;
       server_name example.com example1.com example2.com example3.com;
       location / {
               return 301 https://example.com$request_uri;
       }
}

我的其餘配置:https ://pastebin.com/HgnZ0aBe

請求中使用的域名基本上是主機請求標頭。在 nginx 中,主機頭的變數是 $host。因此,如果您想根據域名/主機重定向,您應該將配置更改為:

return 301 https://$host$request_uri;

希望這有幫助。謝謝

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