Dockerでnginxを動作させるまでの手順
Dockerではnginxを簡単に動作させることが可能です。
nginxの導入~SSL化までの手順を解説。
必要に応じてWSL上のコマンドは先頭にsudoを記述してください。
前提条件
環境はwindows10
WSL2とDockerはインストール済とする
SSL証明書は発行済とする
nginxのインストール
■WSLの起動
CMDなどのターミナルでWSLを起動
> wsl
■nginxのイメージを取得
Dockerでnginxを動作させるのに使える公式イメージは、公式のレジストリサービス「Docker Hub」から取得できます。nginxイメージを取得するためのコマンドは、以下。
$ docker image pull nginx
■nginxを動作させる
nginxイメージを実行することで、Dockerコンテナを生成しnginxを動作させます。
$ docker run --name testnginx -d -p 8082:80 nginx
・「-p 8082:80」
ホスト側のポート番号(8082)と、Docker側のポート番号(80)を紐づけるオプションです。
・「-d」
Dockerコンテナをバックグラウンドで実行するためのオプションです。
・「–name testnginx」
コンテナ名を付与するオプションです。ここではtestnginxという名前をつけてます。
これでnginxの動作が開始されました。「http://コンテナのIPアドレス:8082/
」にアクセスすると、以下のようにnginxのデフォルトページが表示されます。
「http://127.0.0.1:8082」「http://localhost:8082」など
nginxでSSL化する設定
■dockerコンテナを起動させる
$ docker start testnginx
■dockerコンテナの稼働状況確認
$ docker ps -a
STATUSがUp
となっていたらコンテナは稼働中。Exited
となってたらコンテナは稼働してません。
■dockerコンテナ内でコマンドを実行
$ docker exec -it testnginx bash
「root@〇〇〇〇〇〇 #」みたいなユーザに切り替わればdockerコンテナに入れました。
■vimエディタのインストール
dockerコンテナ内で使用するテキストエディタをインストールします。
今回はvimエディタを使用します。好みに応じて別のエディタを使用してもOKです。
# apt-get update
# apt-get install vim
apt-get update
でパッケージのアップデートを行います。
apt-get install vim
でvimのインストールを行います。
■configファイルの編集
configファイルでリバースプロキシの設定を実施します。
configファイルのあるディレクトリへ移動します。デフォルトでは以下にあります。
# cd /etc/nginx/conf.d
vimでdefault.confを開きます。
# vi default.conf
以下のように編集してみます。
server {
listen 80 ssl;
listen [::]:80 ssl;
server_name testnginx;
ssl_certificate /etc/nginx/certs/certificate.pem;
ssl_certificate_key /etc/nginx/certs/privatekey.pem;
location / {
proxy_pass http://localhost:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
ssl_certificate
にはSSL証明書の場所を指定
ssl_certificate_key
にはプライベートキーの場所を指定
proxy_pass
にはリバースプロキシしたいサイトを指定
■SSL証明書の配置
以下にSSL証明書を保管するディレクトリを作成します。
# mkdir /etc/nginx/certs
コンテナから抜けて、WSL上へもどります。
WSL上で証明書の配置してあるフォルダへ移動します。
証明書のインストール(コピー)を実施
$ docker cp privatekey.pem testnginx:/etc/nginx/certs
$ docker cp certificate.pem testnginx:/etc/nginx/certs
■windowsのhostsの編集
windows側のhostsに以下を追記する。
hostsの場所C:\Windows\System32\drivers\etc
127.0.0.1 FQDN
FQDNにはSSL証明書を発行した際に紐づけしたFQDNを指定すること。
■nginxの再起動
nginxを再起動する
# service nginx restart
これでSSL化ができます。
https://FQDN:8082/
にアクセスして指定したサイトへリバースプロキシされるか確認。
SSL化ができてたらURLの先頭が鍵マークに変わります。
以上でSSL化ができました!!