Configurar o FastCGI para Python

6

Eu tenho nginx em execução em uma VM e quero executar um site do Trac. Eu preciso executar um servidor FastCGI python, mas não posso dizer qual é o o servidor para usar. Eu encontrei o seguinte:

  • Lighttpd spawn-fcgi Mas isso parece exigir que você compile o lighttpd apenas para obter o servidor fcgi, o que é estranho.
  • fcgi.py Mas este parece ser depreciado. No mínimo, está mal documentado.
  • flup Este vem com dependências no ubuntu (python-cheetah {a} python-mysqldb {a} python-webpy {a}) isso parece desnecessário. Também mal documentado.

Existem guias recentes para configurar isso? A própria página de configuração FastCGI do Trac parece perder alguns passos.

    
por Rob 05.04.2010 / 03:02

3 respostas

3

trac deve ser agora compatível com WSGI, para que você possa usar qualquer método suportado para executar o site. Se for um site de baixo tráfego, você pode sempre usar o CGI e, eventualmente, mover-se para outra coisa mais tarde, se precisar. Para os outros métodos, use mod_wsgi ou instale flup para FCGI (mesmo que tenha instalado dependências extras).

Para usar flup , você precisa importar o servidor WSGI apropriado e executá-lo, ou seja,

from flup.server.fcgi_fork import WSGIServer
def main_app(...):
  ...

WSGIServer(main_app).run()

Se você quiser executá-lo como servidor externo (isto é, não iniciado pelo servidor da Web), substitua-o por:

WSGIServer(main_app,bindAddress=('1.2.3.4',9999)).run()
    
por 06.04.2010 / 12:08
1

Bem cara, o flup é usado pelo próprio Django. É um método incrível para executar aplicativos fastcgi em python, a menos que você tenha um mod_wsgi ou algo similar.

O código para executar o flup é:

from flup.server.fcgi import WSGIServer

def app(environ, start_response):
  start_respone('200 OK', [('Content-Type', 'text/plain')])
  yield "Hello World"

WSGIServer(app).run()
    
por 10.08.2010 / 15:23
0

Por que FastCGI em particular? No Python, há uma interface padrão para gravar aplicativos de servidor da Web, chamada WSGI. Vários servidores fornecem estruturas para isso; por exemplo, mod_wsgi para o Apache. Para o nginx, parece haver:    link que é mesmo baseado em mod_wsgi.

    
por 06.04.2010 / 11:18