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

FastCGI Flask

FastCGI est une autre option de déploiement des applications Flask sur les serveurs Web (comme nginix, lighttpd et Cherokee).

Configurer FastCGI

Tout d'abord, il faut créer un fichier serveur FastCGI, par exemple, il peut s'appeler : yourapplication.fcgiC .

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
from flup.server.fcgi import WSGIServer
 from yourapplication import app
 if __name__ == '__main__':
     WSGIServer(app).run()

nginx et les versions plus anciennes de lighttpd nécessitent de transmettre explicitement un socket pour communiquer avec le serveur FastCGI. Il faut transmettre le chemin au socket du WSGIServer.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
WSGIServer(application, bindAddress = '/path/to/fcgi.sock').run()

Configurer Apache

Pour une déploiement de base d'Apache, .fcgi Le fichier apparaîtra dans l'URL de votre application, par exemple http://example.com/yourapplication.fcgi/hello/Il existe plusieurs méthodes pour configurer l'application afin que yourapplication.fcgi ne soit pas visible dans l'URL.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
<VirtualHost> *>
    ServerName example.com
    ScriptAlias / /path/to/yourapplication.fcgi/
 </VirtualHost>

Configurer lighttpd

La configuration de base de lighttpd ressemble à ceci -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 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"
 )

N'oubliez pas d'activer FastCGI, alias et module de réécriture. La configuration lie l'application à/yourapplication。