2010-10-28 11 views
0

J'ai la configuration suivante - et ne reçois aucune réponse lorsque je visite le serveur dans un navigateur.Si j'ai un serveur fcgi en cours d'exécution et que je le visite avec un navigateur, que se passe-t-il?

Dois-je en attendre? Voici la configuration du test, en utilisant python & flup.

# test.py

def myapp(environ, start_response): 
    start_response('200 OK', [('Content-Type', 'text/plain')]) 
    return ['abc\n'] 

import os 
os.environ['FCGI_WEB_SERVER_ADDRS']="127.0.0.1:8000" 
from flup.server.fcgi import WSGIServer 
WSGIServer(myapp, bindAddress=('127.0.0.1',8000)).run() 

python test.py 

lynx http://127.0.0.1:8000 

unexpected network read error; connection aborted 

si je commente les trucs OS et redémarrez le serveur:

lynx http://127.0.0.1:8000 

HTTP request sent; waiting for response. 

et rien ne retourne jamais.

Répondre

2

Votre serveur FCGI ne parle pas HTTP. Vous avez besoin d'un proxy HTTP qui peut parler FCGI. Vous pouvez exécuter quelque chose comme nginx qui parle HTTP et peut passer à FCGI.

http://wiki.nginx.org/NginxFcgiExample

+0

merci. la chose qui m'apportait était de savoir comment ça ne retourne rien du tout, même si vous le faites par telnet. – fastmultiplication

0

Vous pouvez vous connecter avec telnet au serveur fcgi, mais (au moins sous Windows), vous ne verrez rien, parce que le serveur vous attend d'envoyer des messages binaires en premier. Donc, après quelques caractères entrés, le serveur abandonne la connexion. Dans le cas où telnet ne se connecte pas du tout, cela peut signifier soit un pare-feu, soit un problème de liaison d'adresse: (soit vous vous connectez à la mauvaise adresse à laquelle votre serveur est lié).