Ubuntu
在 NGINX 上限制子域訪問
我有一個域,它被稱為
mydomain.com
,它在 NGINX 伺服器上執行。sites-enabled
我在for上添加了新配置subdomain.mydomain.com
,它的工作。但是當我訪問時
whatever.mydomain.com
,wildcard.mydomain.com
NGINX 不顯示 404,而是執行配置,如mydomain.com
.如何限制訪問子域,僅適用於啟用站點的可用配置?
您可以像這樣設置“catch all”伺服器塊:
server { listen 80 default_server; server_name _; return 404; #alternative: return 444; }
如果您只想擷取 的子域
mydomain.com
,則可以指定server_name *.mydomain.com
。一般情況下,nginx 會按照以下順序匹配伺服器名稱:
- 完全符合
- 以 * 為前綴的最長匹配
- 以 * 為後綴的最長匹配
- 配置中的第一個匹配正則表達式
- 擷取所有塊
- 在配置中找到的第一個伺服器塊
Nginx 無法為您的子域找到任何匹配項,因此到達第 6 點並使用了唯一的現有塊。
更多關於選項的資訊
server_name
可以在這裡找到:http: //nginx.org/en/docs/http/server_names.html