0

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 を介して応答を取得するようにテストしましたが、うまく機能しましたが、ソケットを使用してこれを実行することはできません。私のクライアントコードの問題を知っている人はいますか?

4

1 に答える 1