【问题标题】:django apps on ports over uWSGI通过 uWSGI 端口上的 django 应用程序
【发布时间】:2019-05-13 09:19:13
【问题描述】:

如果我直接在端口上运行,我的一个 django 应用程序运行正常

# uwsgi --http :8000 --home /home/hsn/Env/site --chdir /home/hsn/djangy/site -w Blog.wsgi

但是当我通过带有套接字的反向代理设置的网络服务器运行它时,我得到内部服务器错误

套接字配置有什么问题吗?需要我改用端口方法吗??

这是我的应用程序的树结构..

# tree -L 2 djangy/site/
djangy/site/
├── account
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── templates
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── apps
│   ├── blog
│   ├── blogs
│   ├── gallery
│   ├── __init__.py
│   ├── myapp
│   ├── mysensing
│   ├── __pycache__
│   └── qrcreate
├── Blog
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── static
│   ├── urls.py
│   ├── views.py
│   └── wsgi.py
├── db.sqlite3
├── images
│   ├── preview2.2.png
│   └── preview.png
├── LICENSE.md
├── manage.py

uWSGI 站点配置

# cat site.ini
[uwsgi]
project = site
uid = hsn
base = /home/%(uid)

chdir = %(base)/djangy/%(project)
home = %(base)/Env/%(project)
module = %(project).Blog.wsgi:application

master = true
processes = 5

socket = /run/uwsgi/%(project).sock
chown-socket = %(uid):www-data
chmod-socket = 660
vacuum = true
req-logger = file:/tmp/reqlog
logger = file:/tmp/errlog

nginx 站点配置

# cat site.conf
server {
    listen 80;
    server_name site.vm www.site.vm;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/hsn/djangy/site;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      127.0.0.1:8000;
    }
}

另外,如果我列出了套接字文件,它会在文件名旁边显示 = 符号,如下所示

# ls -l /run/uwsgi/site.sock 
srw-rw---- 1 hsn www-data 0 May 13 09:15 /run/uwsgi/site.sock=

这意味着什么??

现在是问题部分,如果套接字不工作,我应该通过 uwgsi 转移到端口方法吗?以及如何做到这一点?

我在阅读 /tmp/errlog 文件时收到此错误

--- no python application found, check your startup logs for errors ---

【问题讨论】:

  • 但是 nginx 正在寻找端口,而不是套接字。
  • uwsgi_pass 127.0.0.1:8000; 说您将 nginx 配置为代理到端口 8000,但您应该代理到您创建的套接字。
  • @dirkgroten 我也使用过套接字,但出现内部服务器错误。参数为 uwsgi_pass unix:/run/uwsgi/site.sock;
  • 确切的错误是什么?可以看看 nginx 日志吗?
  • 对于 uwsgi,您应该在您的 site.ini 文件中添加 logger 设置,请参阅 here

标签: django nginx uwsgi


【解决方案1】:

好的,我尝试了不同的参数,似乎问题出在 site.ini 文件

我需要替换的指令是

module = %(project).Blog.wsgi:applicationmodule = Blog.wsgi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    相关资源
    最近更新 更多