服务器设置和教程 · 8 10 月, 2024

Nginx 指令:server_name (伺服器名稱)

Nginx 指令:server_name (伺服器名稱)

Nginx 是一款高效能的網頁伺服器,廣泛應用於各種網站和應用程式中。其靈活的配置選項使得用戶能夠根據需求進行調整。其中,server_name 指令是 Nginx 配置中一個重要的部分,負責定義伺服器的名稱,並決定如何處理來自不同域名的請求。

server_name 指令的基本概念

server_name 指令用於指定伺服器的名稱,這些名稱可以是域名、子域名或 IP 地址。當 Nginx 接收到請求時,它會根據請求中的 Host 標頭來匹配相應的 server_name。這使得同一台伺服器可以根據不同的域名提供不同的內容。

基本語法

server {
    listen 80;
    server_name example.com www.example.com;
    location / {
        root /var/www/example;
        index index.html;
    }
}

在上述範例中,當用戶訪問 example.comwww.example.com 時,Nginx 將會處理這些請求並返回位於 /var/www/example 的內容。

使用通配符

Nginx 也支持使用通配符來匹配多個域名。例如,如果您希望匹配所有以 example.com 結尾的子域名,可以使用以下配置:

server {
    listen 80;
    server_name *.example.com;
    location / {
        root /var/www/example;
        index index.html;
    }
}

這樣配置後,所有 sub.example.com 的請求都會被正確處理。

多個 server_name 的配置

您可以在同一個 server 區塊中指定多個 server_name,以便同時處理多個域名:

server {
    listen 80;
    server_name example.com www.example.com api.example.com;
    location / {
        root /var/www/example;
        index index.html;
    }
}

在這個例子中,無論用戶訪問哪一個指定的域名,Nginx 都會返回相同的內容。

server_name 的優先級

當 Nginx 收到請求時,它會根據 server_name 的匹配情況來選擇相應的伺服器區塊。如果有多個區塊匹配同一個請求,Nginx 將根據以下優先級進行選擇:

  • 完全匹配的 server_name
  • 通配符匹配的 server_name
  • 最長的前綴匹配。

這意味著,如果有一個區塊的 server_nameexample.com,而另一個是 *.example.com,那麼對於 example.com 的請求,Nginx 將選擇完全匹配的區塊。

結論

在 Nginx 的配置中,server_name 指令是管理多個域名和子域名請求的關鍵。透過靈活的配置,您可以輕鬆地為不同的域名提供不同的內容,並確保請求被正確地路由到相應的伺服器區塊。了解如何有效使用 server_name 對於任何希望優化其網站性能的開發者來說都是至關重要的。

如需進一步了解有關 香港 VPS 和其他伺服器解決方案的信息,請訪問我們的網站。