让Django / NGINX / uWSGI在Ubuntu 14.04上运行

时间:2015-11-05 20:38:26

标签: python django ubuntu nginx uwsgi

我用Ubuntu 14.04设置了我的digitalocean Droplet。 NGINX,uWSGI和我正试图运行的django应用程序。

有人可以帮帮我吗?我想我几乎可以找到关于这些工具组合的所有教程。并且无法找出我的配置有什么问题,已经尝试了很多东西。

这是我的项目文件结构:

-- var
    -- www
        -- myproject
            |-- env/
            |-- conf/
            |   |-- myproject.sock
            |   `-- uwsgi.ini
            `-- public/
                |-- manage.py
                |-- media/
                |-- project.db
                |-- requirements.txt
                |-- static/
                `-- website/
                    |-- dev/
                    |-- gulp/
                    |-- gulpfile.js
                    |-- package.json
                    |-- settings.py
                    |-- static/
                    |-- templates/
                    |-- urls.py
                    `-- wsgi.py

我在virtualenv中安装了项目的env/文件夹中的所有内容。

只需输入python manage.py runserver即可投放django应用,我可以通过浏览我的网络服务器IP来查看它。

这些是我当前的配置文件:

的/ etc / nginx的/位点可用/ myproject的

server {
    listen 80;
    server_name myproject.nl www.myproject.nl;

    root /var/www/myproject/public/;
    access_log /var/www/myproject/logs/access.log;
    error_log /var/www/myproject/logs/error.log;

    location /static/ { # STATIC_URL
        alias /var/www/myproject/public/static/; # STATIC_ROOT
        expires 30d;
    }

    location /media/ { # MEDIA_URL
        alias /var/www/myproject/public/media/; # MEDIA_ROOT
        expires 30d;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/var/www/myproject/conf/myproject.sock;
    }
}

/var/www/project/conf/uwsgi.conf

[uwsgi]
# variables
projectname = myproject
projectdomain = myproject.nl
base = /var/www/myproject

# config
plugins = python
home = ../env
master = true
protocol = uwsgi
env = DJANGO_SETTINGS_MODULE=website.settings
pythonpath = %(base)/public
module = website.wsgi:application
wsgi-file = %(base)/public/website/wsgi.py
socket = %(projectname).sock

我尝试通过键入uwsgi --ini /var/www/myproject/conf/uwsgi.ini来运行.ini文件,但它确实执行了,但似乎没有设置服务器。

浏览域名时,我会看到“欢迎来到nginx!”页面所以我认为它与uWSGi配置有关。

1 个答案:

答案 0 :(得分:2)

我认为套接字文件的路径不正确。 但无论如何,'欢迎来到nginx!'意味着nginx甚至不会尝试向uwsgi传递任何东西。如果uwsgi被破坏,你会看到502。

我看到您的配置位于sites-available。您是否将其符号链接到sites-enabled