[英]nginx location blocks precedence
I have a situation where I want to proxy pass the /
block to another local process and try files for the /app
route. 我遇到一种情况,我想代理将
/
块传递给另一个本地进程,并尝试/app
路由的文件。
What is happening is that only / is called and this /app
is skipped entirely. 发生的是仅/被调用,而该
/app
被完全跳过。
root /home/ubuntu/frontend/html/public;
location /app {
try_files $uri /index.html;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://171.11.33.222;
}
I ended up using multiple paths as none of the solutions i found was working. 由于没有找到有效的解决方案,我最终使用了多条路径。
If someone find a better answer, please guide me. 如果有人找到更好的答案,请指导我。
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
root /home/ubuntu/frontend/app/public;
index index.html index.htm;
# Make site accessible from domain
server_name www.domain.com;
if ($ssl_protocol = "") {
rewrite ^ https://$host$request_uri? permanent;
}
# goes to my default application folder
# anything that starts with 'app'
location /app {
try_files $uri /index.html;
}
# everything below goes to my local server
location = / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
location /assets {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
location /blog {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
# anything that starts with '2' like wordpress posts
location ^~ /2 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
location /home {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
location /about-us {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
# anything that starts with 'wp' like wordpress admin
location ^~ /wp {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
# anything other static urls
location ~ ^/(terms-conditions|kyc-aml|privacy-policy) {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://172.31.33.222;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.