問題
頂級域名 a.com
和子域名 b.a.com
解析到同一個服務器IP,但被 Nginx 同一化處理。我的預期是 Nginx 分別代理兩個域名。
Nginx 當前關鍵配置:
server {
listen 80;
server_name a.com;
location / {
proxy_pass http://127.0.0.1:8080/APIs/;
}
}
解決
server {
listen 80;
server_name a.com www.a.com;
location / {
proxy_pass http://127.0.0.1:8080/Hello/;
}
}
server {
listen 80;
server_name b.a.com;
location / {
proxy_pass http://127.0.0.1:8080/APIs/;
}
}
拓展
Nginx 對 server_name
的匹配順序:
- 準確字符串
server {
listen 80;
server_name a.com www.a.com;
}
- 以通配符開始的字符串
server {
listen 80;
server_name *.a.com;
}
- 以通配符結束的字符串
server {
listen 80;
server_name www.*;
}
- 正則表達式
server {
listen 80;
server_name ~^(?.+)\.a\.com$;
}