Mostrando las entradas con la etiqueta Gunicorn. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Gunicorn. Mostrar todas las entradas

sábado, septiembre 12, 2020

Implementar web2py con gunicorn, Nginx y HTTPS

 Lo primero es tener descargado Web2py en la computadora, supondremos la siguiente ubicación:

  
   
/root/web2py/   
lo siguiente es instalar gunicorn
  
   
pip3 install gunicorn  
  
Ahora debemos ejecutar Web2py con Gunicorn, para esto usaremos anyserver.py de web2py y ejecutarlo en la ip local y el puerto 8000:
  
   
python3 /root/web2py/anyserver.py -s gunicorn -i 127.0.0.1 -p 8000 -w 3   
Probamos con el navegador a la direccion 127.0.0.1:8000 que nuestra aplicacion funciona con Gunicorn. Vericado esto detenemos esta ejecucion. Ahora vas a crear un servicio para ser gestionado por parte de systemd, para esto utilizamos el siguiente codigo:
  
   
nano /etc/systemd/system/web2py.service
  
  
   
[Unit]
Description=Instacion Gunicorn para web2py
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/root/web2py
ExecStart=python3 /root/web2py/anyserver.py -s gunicorn -i 127.0.0.1 -p 8000 -w 3

[Install]
WantedBy=multi-user.target
  
Ahora lo iniciamos con el siguiente comando:
  
   
systemctl start web2py
systemctl enable web2py
  
Y verificamos que todo este bien con:
  
   
systemctl status web2py
  

Instalar y configurar Nginx

 

Ya podemos comenzar a configurar Nginx Primero instalamos Nginx:


apt install nginx
  
Ahora creamos un archivo de configuracion para Nginx que realizara la llamada al servicio Gunicorn que corre en el puerto 8000:

nano /etc/nginx/sites-available/web2py
  

server {
    listen 80;
    server_name your_domain;

    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:8000;
    }
}  
Guarde y cierre el archivo al finalizar. Para habilitar la configuración del bloque de servidor de Nginx que acaba de crear, vincule el archivo al directorio sites-enabled:

ln -s /etc/nginx/sites-available/web2py /etc/nginx/sites-enabled
  
Verificamos que esto este bien con Nginx a traves del siguiente comando:

nginx -t
  
Si todo esta bien, reiniciamos Nginx:

systemctl restart nginx
  

Ya todo deberia estar listo y usando el navegador revisados el accesso al domino http://your_domain 

 

Activar HTTPS 

 

Vamos a usar certificados de Let’s Encrypt, los cuales son gratuitos y validos. Debemos instalar el cliente Certbot y su pligun para Nginx para esto:


apt install certbot python3-certbot-nginx
  
Ahora ejecutamos Certbot con el plugin de Nginx, esto realizara el cambio en la configuracion y reinicio de Nginx:

certbot --nginx -d your_domain
  
Debemos ir eligiendo las opciones y ya deberiamos estar listo, ahora ingresemos a https://your_domain