【发布时间】: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