当我尝试使用 nginx 和 uwsgi 部署 Django 应用程序时,我遇到了问题。我将从这里开始配置文件:
tutorial_nginx.conf
upstream django {
server unix:///home/mrgrj/site/blog/tutorial.sock;
}
server {
listen 8000;
server_name xx.xx.xxx.xx;
location /media {
alias /home/mrgrj/site/blog/polls/templates;
}
location /static/ {
root /home/mrgrj/site/blog/polls/templates/polls;
}
location / {
uwsgi_pass django;
include /home/mrgrj/site/blog/uwsgi_params;
}
}
tutorial_uwsgi.ini
[uwsgi]
chdir = /home/mrgrj/site/blog
module = wusgi.py
home = /home/mrgrj/site
master = true
processes = 10
socket = /home/mrgrj/site/blog/tutorial.sock
vacuum = true
我从Official Django Documentation开始学习本教程,不幸的是,当我遇到一些问题时,我没有成功完成它。
nginx服务器设置正确,因为当我从Web浏览器访问ip时,它显示正确的页面。当我运行python manage.py runserver 0.0.0.0:8000
时,django应用程序正在运行。关于该教程我遇到的问题:
uwsgi --http :8000 --module mysite.wsgi
。我没有这样的文件,但我有一些名为 wsgy.py 的simillar:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog.settings")
application = get_wsgi_application()
当我尝试使用wsgi.py
运行该命令时,它在我的浏览器上显示Internal server error
(我通过ip:8000
访问它)。追溯:
*在[Sun Apr 12 16:42:15 2015] 上启动uWSGI 2.0.10(64位),版本:4.8.2 on 10 2015年4月08:25:41 os: Linux-3.13.0-43-generic#72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 nodename:alex-test machine:x86_64时钟源:unix检测到的数字 CPU核心:1个当前工作目录:/ home / mrgrj / site / blog / blog 检测到二进制路径:/ usr / local / bin / uwsgi !!!没有内部路由 支持,用pcre支持重建! 警告:您运行的uWSGI没有主进程管理器 您的进程数量限制为3750,您的内存页面大小为检测到4096字节的最大文件描述符号:1024锁定引擎:pthread 强大的互斥锁thunder lock:禁用(你可以启用它 --thunder-lock)uWSGI http绑定:8000 fd 4产生uWSGI http 1(pid:2169)uwsgi socket 0绑定到TCP地址127.0.0.1:41225(端口 自动分配)fd 3 Python版本:2.7.6(默认,2014年3月22日, 23:03:41)[GCC 4.8.2] 禁用Python线程支持。您可以使用--enable-threads 启用它。在0x122d0c0初始化的Python主解释器您的服务器套接字监听积压限制为100个连接您的 对工人进行优雅操作的怜悯是60秒映射72760 1个内核的字节数(71 KB) 操作模式:单个进程 回溯(最近一次调用最后一次):文件" ./ wsgi。 py",第16行,in application = get_wsgi_application()File" /usr/local/lib/python2.7/dist-packages/django/core/wsgi.py" ;,第14行, 在get_wsgi_application中 django.setup()文件" /usr/local/lib/python2.7/dist-packages/django/ init .py",第17行, 在设置中 configure_logging(settings.LOGGING_CONFIG,settings.LOGGING)File" /usr/local/lib/python2.7/dist-packages/django/conf/ init .py", 第48行, getattr self._setup(name)File" /usr/local/lib/python2.7/dist-packages/django/conf/ init .py",line 44,在_setup self._wrapped =设置(settings_module)文件" /usr/local/lib/python2.7/dist-packages/django/conf/ init .py",line 92,在 init 中 mod = importlib.import_module(self.SETTINGS_MODULE)文件" /usr/lib/python2.7/importlib/ init .py",第37行,在import_module中 导入(名称)ImportError:没有名为blog.settings的模块无法加载应用0(mountpoint ='')(未找到可调用或导入错误) 没有加载应用。进入完全动态模式 uWSGI在多种解释器模式下运行* 产生了uWSGI worker 1(并且是唯一的)(pid:2168,核心:1)
我遇到的另一个问题是当我尝试运行uwsgi --socket :8001 --wsgi-file test.py
时。它给了我一个**no data received message**
`(无法加载网页,因为服务器没有发送数据。)'
有人可以帮帮我吗?