Ich habe eine Python-Anwendung (konkrete Django) auf meinem Server ausgeführt. Vorgestern lief es unter Apache mit mod-wsgi fast ohne Probleme. Ich hatte zwei Hauptgrund nginx wechseln:uwsgi service startet nicht
- Leistung - unter nginx, habe ich fast die Hälfte der Zeit für jede Anforderung
- zwei Anwendungen zusammen nicht erfolgreich unter Apache ausgeführt wurde - gelöst von nginx
- dritten Grunde ist eine bessere Konfiguration für mich
Ich habe ein Problem mit dem uwsgi-Service. Zuerst werde ich die wsgi Datei der App gehören:
import os
import sys
path = os.path.abspath(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
if path not in sys.path:
sys.path.append(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "usporion.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Dann habe ich uwsgi.ini Datei für init-App, die sich unter /etc/uwsgi/apps-enabled/usporion.ini
:
[uwsgi]
plugins = python
uid = www-data
gid = www-data
uwsgi-socket = /srv/sockets/usporion.sock
chmod-socket = 664
chdir = /srv/www/usporion
pythonpath = /srv/www/usporion
module = usporion.wsgi
env = DJANGO_SETTINGS_MODULE=usporion.settings
logdate = True
logto = /var/log/uwsgi/usporion.log
#daemonize = /var/log/uwsgi/usporion.log
vacuum = True
max-requests = 1000
processes = 5
threads = 10
workers = 5
vhost = True
Anmerkung: Ich habe versucht, daemonize unkommentiert zu haben (aber Dies funktioniert nicht mit der aktuellen Verwendung).
Schließlich habe ich diese nginx config:
upstream django {
server 95.168.193.219:80;
}
server {
listen 95.168.193.219:80;
server_name usporion.cz;
return 301 $scheme://www.usporion.cz$request_uri;
}
server {
listen 95.168.193.219:80;
server_name www.usporion.cz;
charset utf-8;
client_max_body_size 100M;
location /media {
alias /srv/www/usporion/media;
expires 1d;
}
location /static {
alias /srv/www/usporion/static;
expires 1d;
}
location/{
root /srv/www/usporion;
include uwsgi_params;
uwsgi_pass unix:///srv/sockets/usporion.sock;
}
}
Ausführen des Befehls uwsgi --ini /etc/uwsgi/apps-enabled/usporion.ini
funktioniert gut und ich bin in der Lage App arbeitet im Web zu sehen. Wenn ich jedoch service uwsgi start
mache, wird der Dienst nicht (FAIL) ohne Nachricht gestartet und ich kann nichts in den Protokollen finden. Das Ausführen dieses Dienstes ohne usporion.ini
in apps-enabled funktioniert einwandfrei.
Ich würde mich für jede Hilfe freuen, die ich mit dem Ausführen von uwsgi "Service" unter dem Bildschirm vermeiden kann, aber als normaler Dienst ausführen. Hier
ist die dist Info:
[email protected][name]:/etc/nginx/sites-enabled# uname -a
Linux [name] 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux
[email protected][name]:/etc/nginx/sites-enabled# cat /etc/debian_version
6.0.7
[email protected][name]:/etc/nginx/sites-enabled# nginx -v
nginx version: nginx/1.2.6
[email protected][name]:/etc/nginx/sites-enabled# uwsgi --version
1.2.3-debian
[email protected][name]:/etc/nginx/sites-enabled# python --version
Python 2.7.3
Schließlich würde, wenn jemand möchte mir einen Rat geben, zu konfigurieren (ich bin neu in nginx und es ist willkommen), das ist 8-Core Xeon-Server 2.4 GHz mit 16 GB RAM, davon ist die Hälfte für diese App reserviert.
haben das gleiche Problem, aber eine andere Ursache. Durch das Kommentieren der "listen" -Richtlinie konnte uwsgi gestartet werden. Keine Fehlermeldungen Spaß, aufzuspüren! – Homer6