有一个域名,根据不同的uri对应不同的后端应用(同一个机器不同port),刚开始使用不同的location进行的区分,大概为
# 第一个项目的路径
location /quiz {
proxy_pass xxx:port1;
}
# 第二个项目
location / {
proxy_pass xxx:port2;
}
由于两个项目在同一台机器的不同目录下,有不同的静态文件static目录。由于根/路径都会代理到第二个项目,会导致第一个项目在请求/static下的静态文件js或者css时会出现404的问题,所以需要新增一个/static路径,来做一个请求来源referer的判断,来代理到不同的后端。
# 第一个项目的路径
location /quiz {
proxy_pass xxx:port1;
}
# 根据不同的请求来源定义不同的static后端
location /static {
if ($http_referer ~ "https://your_servername/quiz") {
proxy_pass xxx:port1;
}
proxy_pass xxx:port2;
}
# 第二个项目
location / {
proxy_pass xxx:port2;
}