nginxでunix sockを使用してリクエストを受け付ける

概要

一つのサーバー内で、複数のアプリケーションをポートで管理すると面倒になる。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; 
  }

}

参考

Comments

タイトルとURLをコピーしました