web2py es un impresionante marco de Python que tiene una gran documentación que incluye varias implementaciones recipes. Sin embargo, lo que echo de menos allí es la receta para implementar usando nginx (preferiblemente con uwsgi). Hay algunas notas incompletas en la web (como here), pero no pude encontrar ninguna guía completa e independiente. Entonces, agradezco tu ayuda.¿Cómo depilar web2py usando nginx?
15
A
Respuesta
12
Bien, mirando más de cerca en la lista de correo electrónico web2py que he vinculado anteriormente, me di cuenta de que la solución copmlete ya está allí. Pude seguir las instrucciones y, gracias a la brillante publicación de pbreit, ahora mi implementación funciona como un encanto (usando solo 38MB de RAM en estado inactivo) con nginx + uwsgi.
Aquí están las partes que utilicé (simplemente desglosé el fabfile.py para usarlo en la línea de comandos) Nota: donde hay 'put (' .... 'Utilicé el editor de nano texto para crear y editar archivos
apt-get -y install build-essential psmisc python-dev libxml2 libxml2-dev python-setuptools
cd /opt;
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar -zxvf uwsgi*
mv /opt/uwsgi*/ /opt/uwsgi/
cd /opt/uwsgi/; python setup.py install
chown -R www-data:www-data /opt/uwsgi
touch /var/log/uwsgi.log
chown www-data /var/log/uwsgi.log
apt-get -y install libpcre3-dev build-essential libssl-dev
cd /opt; wget http://nginx.org/download/nginx-0.8.54.tar.gz
cd /opt; tar -zxvf nginx*
cd /opt/nginx*/; ./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module
cd /opt/nginx*/; make
cd /opt/nginx*/; make install
adduser --system --no-create-home --disabled-login --disabled-password --group nginx
cp /opt/uwsgi*/nginx/uwsgi_params /opt/nginx/conf/uwsgi_params
wget https://library.linode.com/web-servers/nginx/installation/reference/init-deb.sh
mv init-deb.sh /etc/init.d/nginx
chmod +x /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults
/etc/init.d/nginx start
cd /opt/
wget https://library.linode.com/web-servers/nginx/python-uwsgi/reference/init-deb.sh
mv /opt/init-deb.sh /etc/init.d/uwsgi
chmod +x /etc/init.d/uwsgi
echo 'PYTHONPATH=/var/web2py/ MODULE=wsgihandler' >> /etc/default/uwsgi
/usr/sbin/update-rc.d -f uwsgi defaults
/etc/init.d/uwsgi start
rm /opt/nginx/conf/nginx.conf
# modify nginx.conf below and save it as /opt/nginx/conf/nginx.conf
cd /opt/nginx/conf; openssl genrsa -out server.key 1024
cd /opt/nginx/conf; openssl req -batch -new -key server.key -out server.csr
cd /opt/nginx/conf;
openssl x509 -req -days 1780 -in server.csr -signkey server.key -out server.crt
/etc/init.d/nginx restart
nginx.conf
user www-data;
worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 2;
sendfile on;
#tcp_nopush on;
tcp_nodelay on;
gzip on;
server {
listen 80;
server_name example.com www.example.com;
location/{
uwsgi_pass 127.0.0.1:9001;
include uwsgi_params;
}
location /static {
root /var/web2py/applications/init/;
}
}
# HTTPS server
server {
listen 443;
server_name www.example.com example.com;
ssl on;
ssl_certificate /opt/nginx/conf/server.crt;
ssl_certificate_key /opt/nginx/conf/server.key;
location/{
uwsgi_pass 127.0.0.1:9001;
include uwsgi_params;
uwsgi_param UWSGI_SCHEME $scheme;
}
location /static {
root /var/web2py/applications/init/;
}
}
}
Derivado de web2py email list Con la ayuda de this Linode publicar
2
Hay una solución a este problema: http://www.web2pyslices.com/slice/show/1495/updated-uwsgi-nginx-script-for-ubuntu-1110
Cuestiones relacionadas
- 1. ¿Alguien está usando web2py?
- 2. Cómo depurar aplicaciones Web2py?
- 3. ¿Cómo implemento web2py en PythonAnywhere?
- 4. Aplicación predeterminada Web2py
- 5. Controladores Web2py con parámetros?
- 6. DAL sin web2py
- 7. métodos de inserción web2py
- 8. web2py Depuración con Eclipse
- 9. registro de aplicaciones web2py
- 10. ¿Cómo funcionan las expresiones de consulta web2py?
- 11. ¿Cómo puedo usar módulos en web2py?
- 12. ¿Cómo redirigir a un dominio diferente usando NGINX?
- 13. Cómo reescribir si el archivo no se encuentra usando NGINX
- 14. ¿Cómo puedo ejecutar scripts Perl usando FastCGI en Nginx?
- 15. ¿Puedo hacer esto en Web2Py?
- 16. Django para desarrolladores de web2py
- 17. ¿Prevenir web2py desde el almacenamiento en caché?
- 18. Nginx instalado con passenger-install-nginx-module. ¿Cómo desinstalo?
- 19. Cómo mostrar los errores web2py directamente (redirigir automáticamente al ticket)
- 20. Cómo cargar archivos estáticos de HTML de vista en web2py?
- 21. nginx reescribir
- 22. de proxy Nginx todo el tráfico a nginx remota
- 23. Autenticación muy simple usando una cookie única en nginx
- 24. ¿Cómo usar nginx con PHP?
- 25. Cómo reemplazar los errores nginx
- 26. Cómo usar fastcgi_next_upstream en Nginx
- 27. Cómo escribir un módulo Nginx?
- 28. ¿Cómo puedo restaurar/etc/nginx?
- 29. CMS + blog + e-commerce: django o web2py
- 30. Procesos de fondo asíncronos con web2py
cuenta que este archivo de configuración tiene un poco de trayectoria reasignación ... parece asumir una aplicación de inicio. – Massimo
wget -O init-deb.sh http://library.linode.com/assets/661-init-deb.sh – Unitech
@massimo: ¿qué se debe cambiar para admitir varias aplicaciones? – hoju