我有一個在我的服務器上運行的python應用程序(具體的Django)。在昨天之前,它成功運行在mod-wsgi下的apache下,幾乎沒有問題。我有兩個主要的原因切換到nginx的:uwsgi服務沒有啓動
- 性能 - 下nginx的,我對每個請求幾乎一半時間
- 兩個應用程序一起未成功apache下運行 - nginx的
- 第三個原因解決對我來說更好的配置
我有一個uwsgi服務的問題。首先,我將包括應用程序的WSGI文件:
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()
然後,我有init的應用uwsgi.ini文件,位於/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
注:我已經試過有守護進程註釋掉(但這不適用於當前的使用情況)。
最後,我有這樣的nginx的配置:
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;
}
}
運行命令uwsgi --ini /etc/uwsgi/apps-enabled/usporion.ini
工作正常,我能看到的應用程序工作在網絡上。但是,如果我做service uwsgi start
,服務沒有啓動(FAIL)沒有消息,我無法找到日誌中的任何內容。在啓用了應用程序的情況下運行此服務時沒有usporion.ini
工作正常。
我會很高興的任何幫助,我可以避免在屏幕下運行uwsgi「服務」,但作爲正常服務運行。
這裏是DIST信息:
[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
最後,如果有人想給我一些建議配置(我是新來的nginx的,它的歡迎),這是8核Xeon服務器2.4 GHz的16GB的RAM,其中一半是爲這個應用程序保留。
有同樣的問題,但不同的原因。對我來說,評論「listen」指令允許uwsgi啓動。沒有錯誤消息。有趣的追蹤! – Homer6