如果我有一个运行中的fcgi服务器并用浏览器访问,它应该发生什么?

0 投票
2 回答
629 浏览
提问于 2025-04-16 06:13

我有以下的设置,但当我在浏览器中访问服务器时,没有任何响应。

我应该期待会有响应吗?这是我的测试设置,使用的是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

如果我把操作系统相关的部分注释掉,然后重启服务器:

lynx http://127.0.0.1:8000

HTTP request sent; waiting for response.

结果还是没有任何返回。

2 个回答

0

你可以用telnet连接到fcgi服务器,但(至少在Windows上)你可能什么也看不见,因为服务器希望你先发送一些二进制消息。所以当你输入几个字符后,服务器就会断开连接。如果telnet根本连不上,这可能是因为防火墙的问题,或者是地址和端口绑定的问题(也就是说,你可能连接到了一个和服务器绑定的地址不一样的地方)。

2

你的FCGI服务器不支持HTTP协议。你需要一个能够处理FCGI的HTTP代理。你可以使用像nginx这样的工具,它支持HTTP,并且可以将请求转发到FCGI服务器。

http://wiki.nginx.org/NginxFcgiExample

撰写回答