English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

FastCGI de Flask

FastCGI es otra opción de despliegue para aplicaciones Flask en servidores web (como nginx, lighttpd y Cherokee).

Configurar FastCGI

Primero, es necesario crear el archivo del servidor FastCGI, por ejemplo, su nombre puede ser: yourapplication.fcgiC .

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
from flup.server.fcgi import WSGIServer
 from yourapplication import app
 if __name__ == '__main__':
     WSGIServer(app).run()

nginx y versiones anteriores de lighttpd necesitan transmitir explícitamente un socket para comunicarse con el servidor FastCGI. Es necesario pasar la ruta al socket del WSGIServer.

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
WSGIServer(application, bindAddress = '/path/to/fcgi.sock').run()

Configurar Apache

Para una configuración básica de Apache, .fcgi El archivo aparecerá en la URL de su aplicación, por ejemplo http://example.com/yourapplication.fcgi/hola/Existen varios métodos para configurar la aplicación para que 'yourapplication.fcgi' no aparezca en la URL.

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
<VirtualHost> *>
    ServerName example.com
    ScriptAlias / /path/to/yourapplication.fcgi/
 </VirtualHost>

Configurar lighttpd

La configuración básica de lighttpd se ve así -

# Nombre de archivo: example.py
# Derechos de autor: 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha: 2020-08-08
fastcgi.server = ("/yourapplication.fcgi" => ((
    "socket" => "/tmp/yourapplication-fcgi.sock",
    "bin-path" => "/var/www/yourapplication/yourapplication.fcgi",
    "check-local" => "disable",
    "max-procs" => 1
 )))
 alias.url = (
    "/static/" => "/path/to/your/static"
 )
 url.rewrite-once = (
    "^(/static($|/.*))$" => "$"1",
    "^(/.*)$" => "/yourapplication.fcgi$1"
 )

Recuerde activar FastCGI, alias y módulos de reescritura. La configuración binds la aplicación a/yourapplication。