【问题标题】:Getting Django / NGINX / uWSGI to work on Ubuntu 14.04让 Django / NGINX / uWSGI 在 Ubuntu 14.04 上工作
【发布时间】:2016-02-06 20:44:05
【问题描述】:

我已经使用 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

我将所有东西都安装在我项目的 env/ 文件夹中的 virtualenv 中。

只需通过键入python manage.py runserver 为 django 应用程序提供服务,我可以通过浏览我的网络服务器 IP 来查看它。

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

/etc/nginx/sites-available/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 配置有关。

【问题讨论】:

  • 您的 nginx 配置在站点可用;你真的启用了吗?
  • 我将它符号链接到启用站点的...
  • 您正在创建 /var/www/project/conf/uwsgi.conf 但使用 uwsgi --ini /var/www/myproject/conf/uwsgi.ini 命令。名字不对?
  • 不再在这个项目上工作,但代码块中的路径和树是实际路径。所以事实并非如此。

标签: python django ubuntu nginx uwsgi


【解决方案1】:

我认为您的套接字文件的路径不正确。 但无论如何,“欢迎使用 nginx!”意味着 nginx 甚至不会尝试将任何内容中继到 uwsgi。如果 uwsgi 坏了,你会看到 502。

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

【讨论】:

  • 我不知道如何修复路径,看起来它指向正确.. 我确实尝试使用 conf 文件夹中的uwsgi --ini uwsgi.ini 运行.ini .. 我也符号链接文件启用站点..
猜你喜欢
  • 1970-01-01
  • 2014-10-05
  • 2017-08-07
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 2015-04-01
相关资源
最近更新 更多