我使用nginx
+ uwsgi
来部署我的wsgi应用。我必须使用unix sock文件来进行nginx和uwsgi的通信。
配置如下:
location / {
include uwsgi_params;
uwsgi_pass unix:/path/to/uwsgi.sock;
}
但我的项目的父路径是可变的,所以我不能使用固定的绝对路径。
我也不能使用相对路径。因为pwd
也是可变的。
所以我喜欢nginx配置文件中的任何变量,例如$hostname
,它们可以指向包含nginx配置文件的derectory的绝对路径。但我发现没有这样的变数。
有什么好主意吗?
PS:我也不想使用0.0.0.0:8000
这样的套接字来进行nginx和uwsgi的通信。用户运行服务器不是root用户。我想把套接字文件放在项目目录中。
答案 0 :(得分:0)
我不是nginx的专家,但是;
我的建议是使用标准的UNIX方法并将UNIX套接字存储在两个标准位置之一:
/var/run
/tmp
如果为用户存储UNIX套接字,我会将它们存储在:
$HOME/var/run
- 并将此文件记录给您的用户。这类似于Apache的userdir选项如何工作,例如,通过/home/prologic/public_html
提供GET ~/prologic
请求的文件。