Hosting Django z wykorzystaniem Gunicorn i Nginx
9 May 2010
Comments
gunicorn to serwer HTTP zgodny ze standardem WSGI - narzędzie ułatwiające hostowanie różnych pythonowych webowych aplikacji w warunkach produkcyjnych. Gunicorn świetnie współpracuje z Nginxem dając możliwość szybkiego odpalenia projektu Django, Pylons, czy innej aplikacji zgodnej z WSGI.
Bibliotekę można zainstalować ze źródeł, lub poprzez PyPi easy_install -U gunicorn. W podkatalogu doc/htdocs/ gunicorna (pobierz np. źródła) znajdziemy pełną dokumentację i różne przykłady.
Django, gunicorn i NGINX
Oto najprostsza konfiguracja dla Django. Przejdź do katalogu z projektem Django i wykonaj:gunicorn_django --workers=2
Następnie skonfiguruj NginXa:
worker_processes 1;
user nobody nogroup;
pid /tmp/nginx.pid;
error_log /tmp/nginx.error.log;
events {
worker_connections 1024;
accept_mutex off;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /tmp/nginx.access.log combined;
sendfile on;
upstream app_server {
#server unix:/tmp/gunicorn.sock fail_timeout=0;
# For a TCP configuration:
server 127.0.0.1:8000 fail_timeout=0;
}
server {
listen 80 default;
client_max_body_size 4G;
server_name _;
keepalive_timeout 5;
location /site_media/ {
root /ścieżka/do/projektu/django;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
}
}
RkBlog
Comment article