nginx+uwsgi hat Probleme bei der Bereitstellung von Django festgestellt
PHP中文网
PHP中文网 2017-05-16 17:07:42
0
1
839

Zuallererst ist die Computerumgebung Ubuntu 16.10, ich verwende conda, um die Entwicklungsumgebung zu verwalten!!!

uwsgi wird mit pip

von Conda Install installiert

uwsgi-INI-Datei

# backend_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir           = /home/yangtz/developproject/backend

# Django's wsgi file
# wsgi-file = /home/yangtz/developproject/backend/backend/wsgi.py
module          = backend.wsgi

 
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
socket          = /home/yangtz/developproject/backend/backend/backend.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 666
# clear environment on exit
vacuum          = true

# daemonize = /home/yangtz/developproject/backend/uwsgi.log

backend_nginx.conf

    # the upstream component nginx needs to connect to
    upstream django {
        server unix:/home/yangtz/developproject/backend/backend/backend.sock; # for a file socket
        # server 127.0.0.1:8000; # for a web port socket (we'll use this first)
    }
    # configuration of the server
    server {
        # the port your site will be served on
        listen      80;
        # the domain name it will serve for
        server_name 127.0.0.1; # substitute your machine's IP address or FQDN
        charset     utf-8;
    
        access_log      /home/yangtz/developproject/nginx_access.log;
        error_log       /home/yangtz/developproject/nginx_error.log;
    
        # max upload size
        client_max_body_size 75M;   # adjust to taste
    
        # Django media
        # location /media  {
        #     alias /path/to/your/mysite/media;  # your Django project's media files - amend as required
        # }
    
        location /static {
            alias /home/yangtz/developproject/backend/static; # your Django project's static files - amend as required
        }
    
        # Finally, send all non-media requests to the Django server.
        location / {
            uwsgi_pass  django;
            include     /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
        }
    }

Nach dem Start von sudo uwsgi --ini backend_uwsgi.ini ist das Ergebnis

*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
chdir() to /home/yangtz/developproject/backend
your processes number limit is 63466
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /home/yangtz/developproject/backend/backend/backend.sock fd 3
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 800448 bytes (781 KB) for 10 cores
*** Operational MODE: preforking ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!
no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load it with --plugin.
!!!!!!!!!!! END OF WARNING !!!!!!!!!!
spawned uWSGI master process (pid: 9293)
spawned uWSGI worker 1 (pid: 9294, cores: 1)
spawned uWSGI worker 2 (pid: 9295, cores: 1)
spawned uWSGI worker 3 (pid: 9296, cores: 1)
spawned uWSGI worker 4 (pid: 9297, cores: 1)
spawned uWSGI worker 5 (pid: 9298, cores: 1)
spawned uWSGI worker 6 (pid: 9299, cores: 1)
spawned uWSGI worker 7 (pid: 9300, cores: 1)
spawned uWSGI worker 8 (pid: 9301, cores: 1)
spawned uWSGI worker 9 (pid: 9302, cores: 1)
spawned uWSGI worker 10 (pid: 9303, cores: 1)
Die

nginx-Schnittstelle ist

Ich habe es gesehen!!!!!!!!!!!!! ACHTUNG!!!!!!!!!!!!!
Es ist kein Anfrage-Plugin geladen, Sie können keine Anfragen verwalten
Möglicherweise müssen Sie das Paket für die Sprache Ihrer Wahl installieren oder es einfach mit --plugin.

laden

Also habe ich --plugin python3 hinzugefügt und das Ergebnis war

Traceback (letzter Aufruf zuletzt):
Datei „./backend/wsgi.py“, Zeile 12, in <module>

from django.core.wsgi import get_wsgi_application

ImportError: Kein Modul mit dem Namen „django“
App 0 kann nicht geladen werden (mountpoint='') (aufrufbar nicht gefunden oder Importfehler)
Keine App geladen, geht in den volldynamischen Modus
uWSGI läuft Mehrfachdolmetschermodus

Die

nginx-Schnittstelle wird zu

nginx wird aktualisiert, uswgi antwortet.

Was tun? Bitten Sie Gott um Hilfe. . .

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(1)
淡淡烟草味
sudo uwsgi

你切换了环境。你的 Django 不是安装在系统全局的。

如果你使用了 virtualenv 的话,你可以在 uwsgi 的配置中指定 virtualenv 的位置。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage