Ben*_*Ben 7 subdomain overriding nginx
我有一台带有 Nginx 的服务器。我想建立两个网站:
这是我的服务器块配置:
www.backend.mysite.com:
server {
listen 80;
server_name backend.mysite.com www.backend.mysite.com;
location / {
proxy_pass http://127.0.0.1:8800/;
}
}
server {
listen 8800;
server_name my.ip.address;
root /projects/backend/production/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Run Code Online (Sandbox Code Playgroud)
www.staging.backend.mysite.com:
server {
listen 80;
server_name staging.backend.mysite.com www.staging.backend.mysite.com;
location / {
proxy_pass http://127.0.0.1:8900/;
}
}
server {
listen 8900;
server_name my.ip.address;
root /projects/backend/staging/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是 backend.mysite.com 覆盖了 staging.backend.mysite.com。如果我的地址上有子域,我如何对 Nginx 说永远不要覆盖?
更新:
我尝试在我的第二个配置中添加另一个域 (my_other_site.com) 以检查它是否有效:
server {
listen 80;
server_name my_other_site.com www.my_other_site.com staging.backend.mysite.com www.staging.backend.mysite.com;
location / {
proxy_pass http://127.0.0.1:8900/;
}
}
server {
listen 8900;
server_name my.ip.address;
root /projects/backend/staging/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
Run Code Online (Sandbox Code Playgroud)
当我访问 my_other_site.com 时,它运行良好。第二个站点按预期到达。
my_other_site.com, www.my_other_site.com,staging.backend.mysite.com并www.staging.backend.mysite.com具有相同的DNS A配置,它们指向相同的 IP。
更新 2:
当我禁用www.backend.mysite.com服务器块时,它可以工作。该网站staging.backend.mysite.com按预期工作。这意味着确实第一个块覆盖了第二个块。如何告诉第一个服务器块不考虑staging.backend.mysite.com?有没有办法排除特定的域名?
尝试为包含的配置文件提供与域名相同的名称,例如:
aa.domain.com --> aa.domain.com.nginx.conf
bb.domain.com --> bb.domain.com.nginx.conf
Run Code Online (Sandbox Code Playgroud)
所以 nginx 会按照自然字母顺序包含并捕获
| 归档时间: |
|
| 查看次数: |
1627 次 |
| 最近记录: |