套接字 – 将nginx位置重定向/重写为.sock文件,不带前缀

我有一台服务器上运行了几个API.其中一个是用户-DB以下内容很简单:

location /usersDB/ {
    include proxy_params;
    proxy_pass http://unix:/home/ubuntu/projects/UsersDB-api/app.sock;
}

除非我尝试访问usersDB API的/ helloWorld路由,并查看gunicorn.err的日志,我看到:

GET /usersDB/helloWorld

我希望看到:

GET /helloWorld

当然,gunicorn会返回404,这就是我在浏览器中看到的内容.我尝试过重写规则:

location /usersDB/ {
    rewrite /usersDB/(.*) /$1 last;
    include proxy_params;
    proxy_pass http://unix:/home/ubuntu/projects/UsersDB-api/app.sock;
}

但上面的结果是请求进入/ var / www / htmlhelloWorld而不是app.sock.

我知道如果你使用url作为proxy_pass,你只需添加一个trailing /,但我不知道在sock文件的情况下该怎么做.

如何摆脱现在包含在nginx中所有路由上的/ usersDB /后缀?

解决方法:

使用分隔:.例如:

proxy_pass http://unix:/home/ubuntu/projects/UsersDB-api/app.sock:/;

有关详情,请参见this document.

上一篇:如何创建配置文件并告诉Gunicorn使用它?


下一篇:Django + Gunicorn + Nginx 部署之路