我有 nginx 服务器,它后面运行着一个 Django 应用程序,服务器通过 Basic_auth 身份验证进行保护。我想要的是从身份验证中排除一些端点,例如:
/api/v1/testpoint/?search=48
我试过了,但我得到了 404。
就我而言,我在我的mysite
:
location /api/v1/testpoint/ {
auth_basic off;
}
它成功地为所有请求禁用了 Basic_authentication /api/v1/testpoint/
。
但是我遇到了404
错误,因为当/api/v1/testpoint/?search=48
Nginx 的请求到达时,尝试提供相对于其默认公共 Web 根目录的请求。
但由于我正在运行 django 应用程序,它应该将请求转发给 django 应用程序,而不是相对于默认的公共 Web 根目录为它们提供服务。
nginx 正在通过运行在端口 9090 上的 uWsgi 服务器与 django 应用程序通信。
所以我修改了上面的块:
location /api/v1/testpoint/ {
auth_basic off;
uwsgi_pass 127.0.0.1:9090;
include uwsgi_params;
}
这解决了问题。