プライベートでさくらのVPS(Docker)にNginx Proxy Managerを導入してDockerコンテナ(PHP + Apache)を公開する機会があったのでその備忘録です。
80
、81
、443
番ポートを開放している。Nginx Proxy Managerを設置するディレクトリを作成する。
compose.ymlを作成する。
compose.ymlにNginx Proxy Managerコンテナの設定を記述する。
今回はNginx Proxy Managerで利用するDBにMariaDBを採用します。
ユーザー名やパスワードは適宜修正してください。
コンテナを作成、起動する。
コンテナが問題なく立ち上がれば、Nginx Proxy Managerの管理画面にアクセスできるようになります。
管理画面にログインする。
管理画面にログインするとメールアドレスとパスワードの変更を求められるので、適当なものに変更してください。
SSL Certificates
からSSL証明書設定ページへ移動する。
SSLの設定を行う。
画面のAdd SSL Certificate
をクリックしてLet’s Encrypt
を選択すると画像のポップアップが表示されます。
表示されたポップアップに以下の設定を記述します。
設定の記述が完了したらSave
で保存します。SSL証明書の発行は以上で完了です。
コンテナの構成ファイルを設置する。
ディレクトリ構造は以下の通りです。
Nginx Proxy Managerで利用しているDockerネットワークはdocker network ls
で確認できます。
画像の赤線部分がNginx Proxy Managerで利用しているDockerネットワーク名です。
コンテナを作成、起動する。
Hosts > Proxy Hosts
からプロキシ設定一覧画面へ移動する。
プロキシの設定を行う。
Add Proxy Host
をクリックし、表示されたポップアップに以下の設定を記述します。
ポップアップのSSL
から適用するSSL証明書を選択します。
Save
で保存、以上で設定が完了しました。
ファイアウォールの設定やNginx Proxy Managerへのアクセス権を絞るなど、セキュリティ対策をしっかり行ってください。