Unix ソケット経由でテスト fcgi アプリケーションに接続しようとしています。サーバーは非常にシンプルで、フラスコのドキュメントhttp://flask.pocoo.org/docs/0.10/deploying/fastcgi/から取得したものです
クライアントコードは私のものです。サンプルの HTTP リクエストを 経由socket.send
で送信し、「Hello World」を含む HTTP レスポンスを受信することを期待しています。問題は、クライアントがハングアップしs.recv(1024)
、何も起こらないことです。
サーバーコード:
def myapp(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello World!\n']
if __name__ == '__main__':
from flup.server.fcgi import WSGIServer
WSGIServer(myapp, bindAddress="fcgi.sock").run()
クライアントコード:
# -*- coding: utf-8 -*-
import socket
req = """GET / HTTP/1.1
Host: localhost\r\n\r\n"""
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.settimeout(1.0)
s.connect("fcgi.sock")
s.send(req)
data = s.recv(1024)
s.close()
print('Received ' + repr(data))
nginx を介して応答を取得するようにテストしましたが、うまく機能しましたが、ソケットを使用してこれを実行することはできません。私のクライアントコードの問題を知っている人はいますか?