【转载】如何解决 nginx proxy_pass 使用变量 $arg 404 ?
为什么
location /auth0/ {
proxy_pass https://cdn.eu.auth0.com/;
}
这样就可以
但是
location /auth0/ {
proxy_pass https://$arg_host/;
}
就404$arg_host === cdn.eu.auth0.com
proxy_pass 是用了变量的话, nginx就不会自动添加 path 到 host 后面
例如 访问 /auth0/xxxx
如果无变量的, 转发地址就是 https://cdn.eu.auth0.com/xxxx
;
有变量的话转发地址 就只是 proxy_pass 的内容, https://$arg_host/
, 需要手动写上其他信息 path query 等等;
改造
location ~* /auth0/(.*) { proxy_pass https://$arg_host/$1$is_args$args; # $1 就是 (.*); $is_args 是 "?"; $args 是全部 query }
https://segmentfault.com/q/1010000039798761?utm_source=sf-similar-question