-
Notifications
You must be signed in to change notification settings - Fork 22
Configuração e instalação (ambiente de produção) Gunicorn
Jamil Atta Junior edited this page Mar 24, 2016
·
1 revision
- S.O. CentOS versão 7 (x64)
- usuário (por exemplo:
developer
) não root com acesso ao servidor - usuário "developer" deve ter privilegios
sudo
para tarefas administrativas
No terminal, digitar:
sudo yum install epel-release
para ativar EPEL.
sudo yum install python-pip python-devel gcc nginx git libxslt-devel libxml2-devel
- criar um diretorio:
mkdir ~/.virtualenvs
- adicionar estas linhas no final do ~/.bashrc
export WORKON_HOME=~/.virtualenvs
. /usr/bin/virtualenvwrapper.sh
- recarregar arquivo: source ~/.bashrc
- criar e destruir um virtualenv:
mkvirtualenv test
,deactivate
ermvirtualenv test
Documentação oficial: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
- executamos:
mkdir ~/opac_site
- executamos:
mkvirtualenv opac_env
Nos proximos pasos para ativar ou desativar o ambiente, utilize:
- para ativar o ambiente:
workon opac_env
- para desativar o ambiente:
deactivate
- acessamos diretorio do projeto:
cd ~/opac_site/
- executamos:
git clone https://github.com/scieloorg/opac.git
- acessamos diretorio do repositorio do projeto:
cd ~/opac_site/opac/
(dentro deve existir o arquivo:requirements.txt
) - ativamos o virtualenv:
workon opac_env
caso não esteja ativado - instalamos as dependências:
pip install -r requirements.txt
- instalamos as dependências:
pip install -r requirements.production.txt
- copiamos o template de configuração:
cp ~/opac_site/opac/opac/webapp/config/default.py ~/opac_site/opac/opac/webapp/config/local_settings.py
- editamos a configuração:
vi ~/opac_site/opac/opac/webapp/config/local_settings.py
com os dados necessários - [IMPORTANTE] redefinir o valor do SECRET_KEY (instruções https://gist.github.com/jfunez/873c78890d55354739c8)
- executamos:
export OPAC_CONFIG='~/opac_site/opac/opac/webapp/config/local_settings.py'
- nos movemos aos diretorio aonde esta o manager.py:
cd ~/opac_site/opac
- ativamos o ambiente:
workon opac_env
- executamos:
gunicorn --bind 0.0.0.0:8000 opac.manager:app
- acessando pelo browser o endereço IP do servidor, e a PORTA 8000, deve responder o site:
http://ip-servidor:8000/
- se o site não responde, verificar as regras do IP tables e acesso à porta definida acima.
- paramos a execução do gunicorn: CTRL+C
- desativamos o ambiente:
deactivate
- criamos o arquivo:
sudo vi /etc/systemd/system/opac_site.service
- conteúdo do arquivo:
[Unit]
Description=Gunicorn instance to serve OPAC
After=network.target
[Service]
User=developer
Group=nginx
WorkingDirectory=/home/developer/opac_site/opac/
Environment="PATH=/home/developer/.virtualenvs/opac_env/bin"
ExecStart=/home/developer/.virtualenvs/opac_env/bin/gunicorn --workers 3 --bind unix:opac.sock -m 007 opac.manager:app
[Install]
WantedBy=multi-user.target
- executamos:
sudo systemctl start opac_site
- executamos:
sudo systemctl enable opac_site
- editamos o arquivo de configuração:
sudo vi /etc/nginx/conf.d/opac.conf
- definimos um novo block
server {}
- conteúdo do server:
server {
listen 80;
server_name SERVER_DOMAIN_OR_IP;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/developer/opac_site/opac/opac.sock;
}
}
- acrescentamos o usuario nginx ao grupo do usuario developer, para ter acesso ao projeto e poder criar o socket:
sudo usermod -a -G user nginx
- acrescentamos permissão para execução na home do developer:
chmod 710 /home/developer
- verificamos a configuração do nginx:
sudo nginx -t
, se houver erros devem ser solucionados. - iniciamos o serviço:
sudo systemctl start nginx
- habilitamos o serviço:
sudo systemctl enable nginx