django + uwsgi + ngnix + debug off =服务器错误(500)

Unc*_*oby 6 django

我正在尝试建立一个由django + uwsgi + ngnix组成的生产服务器.我正在关注的教程位于http://www.panta.info/blog/3/how-to-install-and-configure-nginx-uwsgi-and-django-on-ubuntu.html

生产服务器正在运行,因为我可以在调试打开时看到管理页面,但是当我关闭调试时.它再次显示服务器错误(500).我不知道该怎么办 .Ngnix应该服务于django请求.我现在很无能为力,请有人帮助我.

我的/etc/nginx/sites-available/mysite.com

server {
  listen  80;
  server_name mysite.com www.mysite.com;
  access_log /var/log/nginx/mysite.com_access.log;
  error_log /var/log/nginx/mysite.com_error.log;


  location / {
    uwsgi_pass  unix:///tmp/mysite.com.sock;
    include     uwsgi_params;
  }



  location /media/  {
    alias /home/projects/mysite/media/;
  }



  location  /static/ {
   alias  /home/projects/mysite/static/;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的/etc/uwsgi/apps-available/mysite.com.ini

[uwsgi]
vhost = true
plugins = python
socket = /tmp/mysite.com.sock
master = true
enable-threads = true
processes = 2
wsgi-file = /home/projects/mysite/mysite/wsgi.py
virtualenv = /home/projects/venv
chdir = /home/projects/mysite
touch-reload = /home/projects/mysite/reload
Run Code Online (Sandbox Code Playgroud)

我的settings.py

root@localhost:~# cat /home/projects/mysite/mysite/settings.py
# Django settings for mysite project.

DEBUG = False
TEMPLATE_DEBUG = DEBUG





min/css/base.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/base.css HTTP/1.1", host: "160.19.332.22"
2013/06/17 14:33:39 [error] 8346#0: *13 open() "/home/projects/mysite/static/admin/css/login.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/login.css HTTP/1.1", host: "174.200.14.200"
2013/06/17 14:33:39 [error] 8346#0: *14 open() "/home/projects/mysite/static/admin/css/base.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/base.css HTTP/1.1", host: "174.200.14.2007", referrer: "http://174.200.14.200/admin/"
2013/06/17 14:33:39 [error] 8346#0: *15 open() "/home/projects/mysite/static/admin/css/login.css" failed (2: No such file or directory), client: 160.19.332.22, server: mysite.com, request: "GET /static/admin/css/login.css HTTP/1.1", host: "174.200.14.200", referrer: "http://174.200.14.200/admin/"
Run Code Online (Sandbox Code Playgroud)

Ewa*_*wan 18

我认为这是你的ALLOWED_HOSTS设置(Django 1.5中的新功能)

请尝试以下内容 settings.py

ALLOWED_HOSTS = ['*']
Run Code Online (Sandbox Code Playgroud)

这将允许所有内容连接,直到您对域名进行排序.

值得一提的是,当您获得一个已排序的域名时,请确保更新此值(允许的域名列表).作为ALLOWED_HOSTS州的文件:

这是一种安全措施,可以通过使用伪造的HTTP主机标头提交请求来防止攻击者通过链接到恶意主机来中毒缓存和密码重置电子邮件,即使在许多看似安全的Web服务器配置下也是如此.

另外(稍微一点) - 我不知道你的每个环境的django设置是否有不同的设置,但这就是我所做的:

在您的settings.py包括结束时:

try:
    from local_settings import *
except ImportError:
    pass
Run Code Online (Sandbox Code Playgroud)

然后在与settings.py创建local_settings.py文件相同的目录中(__init__.py如果使用的结构与初始模板不同,则为文件),并在那里设置每个环境的设置.也local_settings.py从您的版本控制系统中排除.

例如,我有DEBUG=False我的settings.py(对于安全默认值),但可以覆盖DEBUG=True在我的发展本地设置.

我还将所有数据库信息保存在我的本地设置文件中,因此它不受版本控制.

如果你不知道它只是一点信息:-)