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.com 或 www.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_name 是 example.com,而另一個是 *.example.com,那麼對於 example.com 的請求,Nginx 將選擇完全匹配的區塊。
結論
在 Nginx 的配置中,server_name 指令是管理多個域名和子域名請求的關鍵。透過靈活的配置,您可以輕鬆地為不同的域名提供不同的內容,並確保請求被正確地路由到相應的伺服器區塊。了解如何有效使用 server_name 對於任何希望優化其網站性能的開發者來說都是至關重要的。
如需進一步了解有關 香港 VPS 和其他伺服器解決方案的信息,請訪問我們的網站。