我有一台服务器上运行了多个API。其中一个是users-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会返回404s,这就是我在浏览器中看到的内容。我尝试过重写规则:
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/
后缀?
答案 0 :(得分:5)
使用分隔:
。例如:
proxy_pass http://unix:/home/ubuntu/projects/UsersDB-api/app.sock:/;
有关详细信息,请参阅this document。