概要
一つのサーバー内で、複数のアプリケーションをポートで管理すると面倒になる。3001, 3002, 3003とか複数のポート番号を設定しても管理が面倒。
そこでunix sockを使用する。
やること
アプリケーションのnginx
server {
listen unix:/var/run/app.sock;
server_name localhost;
location / {
proxy_pass http://app:8080/;
}
}
docker内であれば、/var/run/app.sockはコンテナの外からアクセスできるようにvolumeする必要がある。ディレクトリを指定して、↓のようにする。
volumes:
- ./run/:/var/run/
サーバーのnginx
proxy_passを.sockファイルにする。
server{
listen 80;
server_name 'example.com';
location / {
proxy_pass http://unix:/var/www/servise/run/app.sock;
}
}
参考
- nginxで unix ドメイン socket をlisten してバックエンド専用に設定する。 – それマグで!
- Docker学習 - docker-composeでnginx+Flaskのwebアプリを構築する方法 | Snow System
Comments