ローカルでNginxを使ってWebサイトを立ち上げる手順をまとめます。
プロジェクトソース
dockerディレクトリにNginxサーバを立ち上げるのに必要なファイルがあり、 srcディレクトリには最小限のindex.htmlしかない構成になってます。
1 2 3 4 5 6 7 8 |
$ tree ├── docker │ └── nginx │ ├── Dockerfile │ └── default.conf ├── docker-compose.yaml └── src └── index.html |
docker-compose.yamlの記述
DockerfileだけでもNginxサーバを立ち上げることは可能ですが、後々 PHPサーバやMySQLサーバを立ち上げて、それらの間で疎通を行いたい場合もあるのでdocker-composeで全体を定義しています。
1 2 3 4 5 6 7 8 9 |
version: '3' services: nginx: build: ./docker/nginx ports: - 10088:80 volumes: - ./src:/var/www |
Nginxサーバで公開している80番ポートをローカルの10088番ポートに紐付けています。
実際にブラウザで確認するときのURLはlocalhost:10088にする想定でいます。
Dockerfileとdefault.confファイルの記述
次はNginxサーバを立ち上げるためのコアとなる部分です。
DockerfileでNginxサーバを立ち上げて、default.confファイルをNginxサーバの指定のディレクトリにコピーしてsrcディレクトリをブラウザで閲覧できるようにしています。
1 2 3 4 5 |
FROM 'nginx:latest' COPY ./default.conf /etc/nginx/conf.d/default.conf RUN nginx -t RUN service nginx restart |
1 2 3 4 5 6 7 8 9 |
server { listen 80 default_server; server_name localhost; location / { root /var/www; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; } } |
ブラウザでの確認まで
docker-composeコマンドでDockerコンテナを立ち上げて
1 |
$ docker-compose up -d |
一応、コンテナ立ち上がっているか確認して
1 2 3 4 |
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------ sample-site_nginx_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:10088->80/tcp |
ブラウザでlocalhost:10088でアクセスしてみると
ちゃんと見れていればOK(超適当な画面だけど
nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。
nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。