0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

nginxをセットアップしてリバースプロキシを利用しよう

0
Last updated at Posted at 2026-01-04

記事一覧:https://qiita.com/takulabo/items/d5f56132c02d4136687c

nginxセットアップしよう(Dify 透過リバースプロキシ)

nginxをセットアップして、URLアクセスできるようにする。
複数のサービスを起動した場合の競合を避けるように整理できます。
現状:http://192.168.1.10:3000
変更:http://192.168.1.10/dify
※将来的に/zabbix、/ollama等利用しやすくなります。

フォルダ構成
/home/user/
└─ services
 ├─ dify/
 └─ nginx-gw/

①nginxセットアップ手順

nginx-gw用ディレクトリ作成

terminal
cd ~/services
mkdir nginx-gw
cd nginx-gw

nginx-gw用 docker-compose.yml 作成


terminal
nano docker-compose.yml

下記をコピペし保存します。

~/services/nginx-gw/docker-compose.yml
services:
  nginx-gw:
    image: nginx:latest
    container_name: nginx-gw
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - service-nw
networks:
  service-nw:
    external: true

「Ctrl+o→」[Enter]
「Ctro+x」
上記ショートカットキーにて保存できます。

Docker ネットワーク確認・作成

terminal
docker network ls

service-nw が無ければ作成:

terminal
docker network create service-nw

設定値を確認

:~/services/nginx-gw $ docker ps
CONTAINER ID  IMAGE                        COMMAND                  CREATED      STATUS      PORTS       NAMES
046ca331f072  langgenius/dify-api:1.11.2   "/bin/bash /entrypoi…"   4 days ago   Up 4 days   5001/tcp    docker-api-1
e454280af563  langgenius/dify-web:1.11.2   "/bin/sh ./entrypoin…"   4 days ago   Up 4 days   3000/tcp    docker-web-1
cc607ec9d9b1  nginx:latest                 "sh -c 'cp /docker-e…"   4 days ago   Up 4 days   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp   docker-nginx-1
host:~/services/nginx-gw $

proxy対象
IMAGE: langgenius/dify-web:1.11.2
PORTS: 3000/tcp NAMES: docker-web-1

nginx(Dify 標準)
IMAGE: nginx:latest
PORTS: 80:80  NAMES: docker-nginx-1

nginx.conf 作成(最小構成)

terminal
nano nginx.conf

nginx.conf 編集

~/services/nginx-gw/nginx.conf
events {}

http {
  server {
    listen 80;

    # /dify → Dify
    location /dify/ {
      proxy_pass http://web:3000/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Difyが返す /apps を吸収する
    location /apps {
      proxy_pass http://web:3000/apps;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}


difyのyml(network:)を編集

terminal
cd ~/services/dify/docker
nano docker-compose.yml

docker-compose.yml追記
networks:の一番下に追記

terminal
  service-nw:
    external: true

difyのyml(web:)を編集

terminal
nano docker-compose.yml

docker-compose.yml追記
web:の一番下に追記

terminal
    networks:
      - service-nw

.env に PROJECT_NAME を置く

terminal
cd ~/services/nginx-gw/docker
nano .env

以下を追記

terminal
COMPOSE_PROJECT_NAME=nginx-gw
terminal
cd ~/services/dify/docker
nano .env

以下を追記
ファイル末尾に追記

terminal
COMPOSE_PROJECT_NAME=dify

dify を再起動

terminal
cd ~/services/dify/docker
docker compose down
docker compose up -d

nginx-gw を再起動

terminal
cd ~/services/nginx-gw/docker
docker compose down
docker compose up -d

==========================
ポート重複で起動できないとき
cd ~/services/dify/docker
docker compose down

cd ~/services/nginx-gw/docker
docker compose down

terminal
ps | egrep ':(80|5003)'

ポート削除

terminal
docker rm -f docker-nginx-1 docker-plugin_daemon-1

表示されないことを確認

terminal
ps | egrep ':(80|5003)'

==========================

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?