このブログ含め、これまで個人開発してきたWebアプリのデプロイ環境を nginx + Let’s Encrypt (Certbot) + Docker Compose or PM2 という漢の手組み環境からCoolifyというオープンソースでセルフホスト型のPaaSに移行する作業を行っています。(いずれにせよサーバーレスではなくVPS上で手動で環境構築しています。)
今まではインターネットから自宅LANにある資材へのアクセスも上記の手組み環境のうちnginxをリバースプロキシとして利用して実現していたのですが、Coolify移行に伴い80/443番ポートの受け付けがnginxではなくなってしまうので必然とCoolify上で自宅資材へのリバースプロキシを組む必要が出てきました。
Coolify自体にも別サーバーを管理する機能があり、当初はそれを利用しようと思っていたのですがMTUの問題(賃貸ネットあるある)のせいかVPS上にあるCoolifyから自宅サーバーへのSSHの公開鍵認証ができず…
仕方ないのでCoolify側でリバースプロキシ用のプロジェクトを作成し、ドメインを紐づけたnginxのコンテナを起動し、リバースプロキシ用のnginx.confを注入することによってやりたいことが実現できたので、備忘録がてらその手順をご紹介します。
前提
- ドメイン
- subdomain.example.com
- 宛先アドレス
- http://10.0.0.2:3000
- (今回自分はWireGuardで拠点間VPN接続している自宅サーバーにリクエストを転送したかった)
- http://10.0.0.2:3000
手順
リソースの作成
適当なプロジェクトを作成、リソース追加画面に遷移したらDocker Imageを選択する。
Create a new Application画面に行くのでImage Nameフィールドにnginx:alpineと入力して進む。
リソースの設定画面に遷移したらDomainsフィールドにhttps://subdomain.example.comと入力して保存する。 (※ドメインだけじゃなくてスキームの入力も必要)
設定ファイルの注入
サイドバーのPersistant Storageメニューを開き、+ AddボタンからFile Mountを選択する。
モーダルが開くので以下のように入力する
Destination Path
/etc/nginx/conf.d/default.conf
Content
入力が完了したらAddを押下して保存→モーダルを閉じてリソースをデプロイする。
Dockerビルドが完了してコンテナが立ち上がると、先程Domainsフィールドに入力したドメインで宛先アドレスで指定した資材にアクセスできるようになっているはずです🎊
(追記) Coolifyを通すとファイルダウンロードが激遅になる問題
2026年8月24日現在、Coolifyが内部的に使用しているTraefikのQUIC(HTTP/3)周りの挙動により、今回の記事で構築したようなCoolifyのリバースプロキシを経由してNASからファイルをダウンロードしたりすると、極端に速度が低下する場合があります😭
手元の環境でHTTP/2では数MB/s程度出る一方、HTTP/3では数百KB/s程度まで低下していました。
解決方法ですが、管理画面からServers → Proxy → Configurationと移動すると/data/coolify/proxy/docker-compose.ymlが表示されるので、このうち
services.traefik.portsにある'443:443/udp'services.traefik.commandにある'--entrypoints.https.http3'
をコメントアウトして、QUIC(HTTP/3)自体を無効化します。
設定保存後にRestart Proxyすると手元の環境ではダウンロード速度が復活しました👍
この記事は 2026/08/24 18:55:17 にビルドされました