diff --git a/docs/deploy.rst b/docs/deploy.rst index 8b1378917..cff5bacb5 100644 --- a/docs/deploy.rst +++ b/docs/deploy.rst @@ -1 +1,95 @@ +============================== +Instruções para fazer o Deploy +============================== +Para efeitos deste doc, foram consideradas as tecnologias NGINX + GUNICORN para servir a aplicação Django SAPL. + +O NGINX é o servidor WEB, e o GUNICORN é o servidor da aplicação para o servidor WEB. + + +Instalar o NGINX:: + + sudo pip install nginx + + +Instalar o Gunicorn:: + + sudo pip install gunicorn + + +Preparando o NGINX +------------------ +vi /etc/nginx/sites-available/sapl31:: + + upstream ENDERECO_SITE { + server unix:~/sapl/gunicorn.sock fail_timeout=0; + } + + server { + + listen 80; + server_name ENDERECO_SITE; + + client_max_body_size 4G; + + access_log /var/log/nginx-access.log; + error_log /var/log/nginx-error.log; + + location /static/ { + alias ~/sapl/collected_static/; + } + + location /media/ { + alias ~/sapl/media/; + } + + 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://ENDERECO_SITE; + break; + } + } + + # Error pages + error_page 500 502 503 504 /500.html; + location = /500.html { + root ~/sapl/sapl/static/; + } + } + + +Criar link simbólico para ativar o site:: + + sudo ln -s /etc/nginx/sites-available/sapl3.conf /etc/nginx/sites-enabled/sapl3 + + + +Preparando o Gunicorn +--------------------- +Na raiz do Projeto sapl, existe o arquivo chamado gunicorn_start.sh +onde ~/ devem ser alterados pelos caminhos correspondentes. + +Para definir o parametro NUM_WORKERS utilize a seguinte fórmula: 2 * CPUs 1. +Para uma máquina de CPU única o valor seria 3 + +Para dar Permissão de execução para o script:: + + chmod ux bin/gunicorn_start + +Para rodar o gunicorn:: + + ./~/.gunicorn_start.sh + + + +#Referências. + +http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/ + +Para multiplas aplicações Django. + +http://michal.karzynski.pl/blog/2013/10/29/serving-multiple-django-applications-with-nginx-gunicorn-supervisor/ +