私はアドレス/ポートとソケットの両方で待機するTornadoサーバーを持っています。私は(頻繁にストリップダウン)おおよそのようにサーバーを作成します。リクエストがソケットまたはURL経由でTornadoで受信されたかどうかを調べる
curl -XGET --unix-socket mysock.sock http:/ping
として:要求はつまり何かのように、ソケットを介して受信されたとき、私は区別できるようにしたいと思い
from tornado import httpserver
from tornado.netutil import bind_unix_socket
server = httpserver.HTTPserver(
request_callback=some_callback,
io_loop=some_loop,
)
unix_socket = bind_unix_socket("mysock.sock")
server.add_socket(unix_socket)
server.listen(address="some_host", port=1234)
反対:
curl http://some_address:1234/ping
私は要求を受信したときの竜巻が使用するHTTPServerRequestを見て、私は最善の方法は、2つの違いを教えているのかわからないんだけど。私はremote_ip
を見て、それがlocalhostから来ているかどうかを見ることができますが、それは理想的だとは思いません。
remote_ip'がでtornado.httpserver.py' 'に従ってUNIXソケットの' 0.0.0.0'あろう 'のように見えますソース(https://github.com/tornadoweb/tornado/blob/81ee310adcd905fbdf7c98d9fb6ef0c5a46026c2/tornado/httpserver.py#L203)。さらに、 'request.context'の' address_family'は 'AF_UNIX'と考えています。 – thomascirca