如何防止 nginx 反向代理特定子目录

如何防止 nginx 反向代理特定子目录

在 Apache 上,您可以使用 ProxyPass 访问除一个或多个子目录(带有“!”)之外的所有内容。

    ProxyPass /subdir !
    ProxyPass / http://localhost:9999/

Nginx 的对应物是什么?

我的第一个猜测显然是行不通的:

 location /subdir {
      root /var/www/site/subdir;
  }

 location / {
      proxy_pass http://localhost:9999/ ;
  }

答案1

您可以将 proxy_pass 绑定到您喜欢的路径,如下所示

location = / {
    proxy_pass http://localhost:9999/;
}

这确保不会通过其他路径,但/

或者

您可以使用此语法仅匹配子目录

location ^~ /subdir {
     alias /var/www/site/subdir;
}

location / {
    proxy_pass http://localhost:9999/ ;
}

^~子目录匹配,然后停止搜索,因此/将不会被执行。描述这里

相关内容