我试图部署我的第一个django项目,我在linode服务器上使用uwsgi和nginx。 基本上我会按照接下来的步骤进行操作。
在/ etc / uwsgi / apps-available /上为我的项目创建uwsgi配置文件,并在/ etc / uwsgi / apps-enabled /上创建符号链接:
[uwsgi]
plugins = http,python
env = DJANGO_SETTINGS_MODULE=app.settings
chdir = /opt/deploy/.virtualenvs/test_app/test/
home = /opt/deploy/.virtualenvs/test_app/
module = django.core.handlers.wsgi:WSGIHandler()
processes = 4
idle = 3600
touch-reload = /opt/deploy/.virtualenvs/test_app/test/app/local_settings.py
在/ etc / nginx / sites-available /上创建我的nginx配置文件,并在cd nginx / sites-enabled /中创建符号链接,这是我的nginx文件:
server {
server_name www.test.com;
rewrite ^(.*) http://test.com$1 permanent;
}
server {
listen 80;
server_name test.com;
charset utf-8;
client_max_body_size 10m;
client_body_buffer_size 128k;
# serve static files
location /static/ {
alias /opt/deploy/.virtualenvs/test_app/test/app/static/;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/test.sock;
}
}
重启uwsgi和nginx。
我希望在运行/ uwsgi / app /上找到文件test.sock,但是没有创建该文件。当看到nignx错误日志时,我有这一行:
2015/10/02 01:47:49 [crit] 8967#0: *51 connect() to unix:/run/uwsgi/app/test.sock failed (2: No such file or directory) while connecting to upstream, client: 181.135.143.435, server: test.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/run/uwsgi/app/test.sock:", host: "test.com"
为什么我可以为生成uwsgi文件做什么?,我非常知道这可能是一个愚蠢的问题,但在此之前写下了很多教程并且无法找到任何解决方案..谢谢你。
答案 0 :(得分:1)
也许您需要一些特殊权限才能在位置/ run / uwsgi / app /上生成套接字文件。如果你把它放在/tmp/test.sock中,应该正确生成套接字。
答案 1 :(得分:0)
您缺少配置中的一部分。这是我服务器的工作配置:
upstream django-myhome {
server unix:///home/myhome/myhome/myhome.sock; # for a file socket
}
server
location / {
uwsgi_pass django-myhome;
include /home/myhome/myhome/uwsgi_params; # the uwsgi_params file you installed
}
还要确保您具有创建.sock文件的正确权限