我有一台服务器,上面运行着多个 API。其中之一是 users-DB
以下归结为 gunicorn 就好了:
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。我知道,如果您为 proxy_pass 使用 url,您只需添加 trailing
/
,但我不确定在 sock 文件的情况下该怎么做。如何摆脱现在包含在 nginx 中所有路由中的
/usersDB/
后缀? 最佳答案
使用单独的 :
。例如:
proxy_pass http://unix:/home/ubuntu/projects/UsersDB-api/app.sock:/;
有关详细信息,请参阅 this document。