Django + uwsgi + ngnix + 调试关闭 = 服务器错误(500)

2024-05-10

我正在尝试设置一个由 Django + uwsgi + Nginx 组成的生产服务器。 我正在关注的教程位于此处http://www.panta.info/blog/3/how-to-install-and-configure-nginx-uwsgi-and-django-on-ubuntu.html 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/;
  }
}

我的/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

我的设置.py

root@localhost:~# cat /home/projects/mysite/mysite/settings.py
# Django settings for my site 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/"

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

在您的系统中尝试以下操作settings.py

ALLOWED_HOSTS = ['*']

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

值得一提的是,当您对域名进行排序时,请确保更新该值(允许的域名列表)。作为文档ALLOWED_HOSTS https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts states:

这是防止攻击者中毒的安全措施 缓存和密码重置电子邮件,其中包含指向恶意主机的链接 使用虚假的 HTTP Host 标头提交请求,这是可能的 即使在许多看似安全的网络服务器配置下也是如此。

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

在你的最后settings.py包括:

try:
    from local_settings import *
except ImportError:
    pass

然后在同一个目录下settings.py创建一个local_settings.py文件(和一个__init__.py文件(如果使用与初始模板不同的结构)并在其中设置每个环境的设置。还排除local_settings.py来自您的版本控制系统。

例如我有DEBUG=False in my settings.py(为了安全的默认值)但可以覆盖DEBUG=True在我的开发本地设置中。

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

如果您还不知道的话,只是一点信息:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django + uwsgi + ngnix + 调试关闭 = 服务器错误(500) 的相关文章

随机推荐