【问题标题】:Arch Nginx Uwsgi no app loadedArch Nginx Uwsgi 没有加载应用程序
【发布时间】:2016-09-30 18:46:07
【问题描述】:

我正在尝试让 django 工作,但 uwsgi 在加载任何内容时遇到问题。很可能是因为我的无知。我很想帮助解决问题。我一直在查看堆栈交换上的类似帖子,但没有一个有帮助,它们都非常具体。

/etc/uwsgi/ 中,我有一个用于配置的.ini 文件和一个.py 文件,我希望uwsgi 托管在端口2929 上。

/etc/uwsgi/test.ini:

[uwsgi]
socket=127.0.0.1:2929
plugin=python
wsgi-file=/etc/uwsgi/test.py
master=True

/etc/uwsgi/test.py:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

/etc/nginx/sites/test.conf,启用并加载到 nginx:

upstream test_uwsgi{                          
 server 127.0.0.1:2929;
}
server{
 listen 80;
 server_name test.example.com;
 location / {
  include uwsgi_params;
  uwsgi_pass test_uwsgi;
 }
}

注意:我使用的是 Arch Linux。

我重启nginx,然后使用uwsgi启动test.ini

systemctl restart nginx
systemctl start uwsgi@test

两者都成功运行/激活而没有错误。当我检查服务 uwsgi@test.service 的日志/日志时:

Sep 30 11:29:23 Nexus systemd[1]: Starting uWSGI service unit...
Sep 30 11:29:23 Nexus uwsgi[576]: [uWSGI] getting INI configuration from /etc/uwsgi/test.ini
Sep 30 11:29:23 Nexus uwsgi[576]: *** Starting uWSGI 2.0.13.1 (64bit) on [Fri Sep 30 11:29:23 2016] ***
Sep 30 11:29:23 Nexus uwsgi[576]: compiled with version: 6.1.1 20160501 on 01 June 2016 05:45:41
Sep 30 11:29:23 Nexus uwsgi[576]: os: Linux-4.7.2-1-ARCH #1 SMP PREEMPT Sat Aug 20 23:02:56 CEST 2016
Sep 30 11:29:23 Nexus uwsgi[576]: nodename: Nexus
Sep 30 11:29:23 Nexus uwsgi[576]: machine: x86_64
Sep 30 11:29:23 Nexus uwsgi[576]: clock source: unix
Sep 30 11:29:23 Nexus uwsgi[576]: pcre jit disabled
Sep 30 11:29:23 Nexus uwsgi[576]: detected number of CPU cores: 4
Sep 30 11:29:23 Nexus uwsgi[576]: current working directory: /
Sep 30 11:29:23 Nexus uwsgi[576]: detected binary path: /usr/bin/uwsgi
Sep 30 11:29:23 Nexus uwsgi[576]: uWSGI running as root, you can use --uid/--gid/--chroot options
Sep 30 11:29:23 Nexus uwsgi[576]: *** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
Sep 30 11:29:23 Nexus uwsgi[576]: your processes number limit is 28969
Sep 30 11:29:23 Nexus uwsgi[576]: your memory page size is 4096 bytes
Sep 30 11:29:23 Nexus uwsgi[576]: detected max file descriptor number: 1024
Sep 30 11:29:23 Nexus uwsgi[576]: lock engine: pthread robust mutexes
Sep 30 11:29:23 Nexus uwsgi[576]: thunder lock: disabled (you can enable it with --thunder-lock)
Sep 30 11:29:23 Nexus uwsgi[576]: uwsgi socket 0 bound to TCP address 127.0.0.1:2929 fd 4
Sep 30 11:29:23 Nexus uwsgi[576]: Python version: 3.5.2 (default, Jun 28 2016, 08:46:01)  [GCC 6.1.1 20160602]
Sep 30 11:29:23 Nexus uwsgi[576]: *** Python threads support is disabled. You can enable it with --enable-threads ***
Sep 30 11:29:23 Nexus uwsgi[576]: Python main interpreter initialized at 0xcbfb40
Sep 30 11:29:23 Nexus uwsgi[576]: your server socket listen backlog is limited to 100 connections
Sep 30 11:29:23 Nexus uwsgi[576]: your mercy for graceful operations on workers is 60 seconds
Sep 30 11:29:23 Nexus uwsgi[576]: mapped 145536 bytes (142 KB) for 1 cores
Sep 30 11:29:23 Nexus uwsgi[576]: *** Operational MODE: single process ***
Sep 30 11:29:23 Nexus uwsgi[576]: unable to find "application" callable in file /etc/uwsgi/test.py
Sep 30 11:29:23 Nexus uwsgi[576]: unable to load app 0 (mountpoint='') (callable not found or import error)
Sep 30 11:29:23 Nexus uwsgi[576]: *** no app loaded. going in full dynamic mode ***
Sep 30 11:29:23 Nexus uwsgi[576]: *** uWSGI is running in multiple interpreter mode ***
Sep 30 11:29:23 Nexus uwsgi[576]: spawned uWSGI master process (pid: 576)
Sep 30 11:29:23 Nexus uwsgi[576]: spawned uWSGI worker 1 (pid: 590, cores: 1)
Sep 30 11:29:23 Nexus systemd[1]: Started uWSGI service unit.
Sep 30 11:29:26 Nexus uwsgi[576]: -- unavailable modifier requested: 14 --
Sep 30 11:29:26 Nexus uwsgi[576]: -- unavailable modifier requested: 14 --

我认为整个日志的关键是:

*** no app loaded. going in full dynamic mode ***

UWSGI 找不到 python 文件?

我如何让它工作?

非常感谢任何帮助!

【问题讨论】:

  • 你在哪里指定了 project.wsgi 文件的路径?
  • 尝试在test.ini 中使用chdir 选项,uwsgi 用于指定工作目录。然后将应用程序文件的相对路径(即test.py)分配给ini文件中的wsgi-file选项。

标签: python django nginx uwsgi archlinux


【解决方案1】:

您不能正确设置您的环境。使用 uwsgi 配置文件中的 home 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多