我正在尝试将缺少文件扩展名的任何请求定向到我的快速服务器,除了/
和/dashboard
,我想转到我的连接服务器。 /dashboard
应该从连接服务器请求/dashboard.html
。这就是我所拥有的:
server {
listen 80;
server_name myserver;
index index.html;
location @connect {
proxy_pass http://localhost:9001;
}
location @express {
proxy_pass http://localhost:9002;
}
location ~* \.(html|js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri @connect;
expires 7d;
}
location = / {
try_files $uri @connect;
}
location = /dashboard {
try_files $uri.html @connect;
}
location / {
try_files $uri @express;
}
}
/
按预期转到连接服务器,但/dashboard
转到我的快速服务器。谁能帮我理解我做错了什么?
答案 0 :(得分:2)
解决方案是替换:
location = /dashboard {
try_files $uri.html @connect;
}
与
location = /dashboard {
proxy_pass http://localhost:9001/dashboard.html;
}
参考:
答案 1 :(得分:0)
我认为问题是因为您使用了location = /dashboard
并且我认为这例如不匹配/dashboard/
,您是否只想要确切位置匹配?我的意思是为什么不使用location /dashboard/
(删除=
)