我是 Nginx 的新手,如果我很迟钝,请原谅我。我有一个位于 nginx 代理后面的服务,我正在使用 auth_basic 来防止任何人目前能够访问它。我想允许 Angular 应用程序访问此服务,但我想控制允许谁执行特定请求方法(GET、POST、DEL、OPTIONS),并且使用 auth_basic 似乎不是最好的选择,因为我不'不想将登录名/密码硬编码到 JS 中(duh)。我能弄清楚如何做到这一点的唯一方法是说:
if ($request_method = OPTIONS)
{
proxy_pass_header Access-Control-Allow-Origin *;
proxy_pass_header Access-Control-Allow_Methods GET, OPTIONS;
etc...
}
此时,我将允许来自任何人的 GET 和 OPTIONS 请求,但我想将 POST、DEL 限制为仅来自某些位置(例如内部或来自受信任的 IP)。但是,目前,如果我将 proxy_pass_header 放入该块中,则表示该指令是不允许的。我已经看到人们在这样的 if 块中使用 add_header 的其他示例,所以我很困惑为什么这不起作用。
所以首先,这是不是最好的做事方式,如果不是,有人有其他建议吗?如果这是处理事情的最佳方式,我在这里做错了什么?
任何帮助,将不胜感激。我发现 nginx 文档非常混乱。