53998


Webサーバで利用する.sockですが、どこで生成されるのかがわかりません。具体的には、Webサーバでcgiを用いてプログラムを実行するには、以下のような指定を行うと思います(TCPの場合はさておき)。

[code]

    unix:///tmp/myproject.sock
    
[/code]

ただ、どのサイトでも、何事もなかったかのように説明なしに、上記のような使い方をしています。  
説明なしなくらいなので、超常識なのだと思いますが、どのようにしてこれを生成or取得すればよろしいでしょうか。

これは、自動的に作られるファイルで、Webサーバ側と、アプリケーション側で同じ場所を指定していれば、勝手に良しなにやってくれるのでしょうか。

回答をお待ちしております。


CC BY-SA 4.0
2019-04-05T11:45:04.997
53955
2019-04-07T12:53:54.147
28291
question
nginx cgi
Webサーバで利用する.sockはどこにあるのか


自己解決したので、回答します。

私はFlaskを利用していますが、FlaskのFastCGIの項で、以下の記載がありました。これは、FlaskでFastCGIとして動作させるには、これを書けばいいよ、というプログラムですが、これを記載すると、Flaskアプリケーションを動かした際に、Flaskが`.sock`ファイルを生成してくれます。パスはもちろん、以下に記載の`/path/to/fcgi.sock`です。

[code]

    WSGIServer(application, bindAddress='/path/to/fcgi.sock').run()
    
[/code]

そして、Flaskが生成した`.sock`に対して、Webサーバが接続しに行くようです。WebサーバとWebアプリケーションのつなぎ目を理解することができました。


CC BY-SA 4.0
2019-04-07T12:53:54.147
53998
2019-04-07T12:53:54.147
28291
53955
answer