書籍「nginx実践入門」のサンプルコードを公開しています
サポートページなどには掲載して頂いているのですが、nginx実践入門のサンプルコードをGithubで公開しています。
本書は紙面の都合上、サンプルコードの説明よりも文章やディレクティブの挙動に重きをおいて説明しているところが多々あり、そのためリストも内容が大きく省略されていたりします。公開しているサンプルコードでは本文中の不足を補うため、基本的にはそのまま動作するコードにすることを心がけて作成しています。実際にコードをそのまま確認したい方はサンプルコードを利用して頂くと手間が省けるかもしれません。
また、本書の設定ファイルが動作するnginxをビルドするためのスクリプトも付属しています。DebianとUbuntuのみの対応となりますが(Travis CIでCIをまわしている関係でデフォルトはUbuntuです)、ビルドする際の参考になるはずです。
本書中ではビルド手順について、特定のディストリビューションに依る書き方を避けています。自分はDebianの場合、以下のようなスクリプトを使い回しています。このスクリプトだと設定ファイルを/etc/nginx/nginx.conf
においたり、/var/log/nginx
にログファイルを出力したりします。参考になるかもしれません。
#!/bin/bash -ex set -o pipefail nginx_version="1.9.5" openssl_version="1.0.2e" pcre_version="8.37" zlib_version="1.2.8" sudo apt-get update sudo apt-get install libgd-dev mkdir src pwd cd src test -d "nginx-${nginx_version}" || wget http://nginx.org/download/nginx-${nginx_version}.tar.gz && tar xvf nginx-${nginx_version}.tar.gz test -d "pcre-${pcre_version}" || wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_version}.tar.gz && tar xvf pcre-${pcre_version}.tar.gz test -d "openssl-${openssl_version}" || wget https://www.openssl.org/source/openssl-${openssl_version}.tar.gz && tar xvf openssl-${openssl_version}.tar.gz test -d "zlib-${zlib_version}" || wget http://zlib.net/zlib-${zlib_version}.tar.gz && tar xvf zlib-${zlib_version}.tar.gz cd nginx-${nginx_version} mkdir -p /var/lib/nginx ./configure \ --with-openssl=../openssl-${openssl_version} \ --with-zlib=../zlib-${zlib_version} \ --with-pcre=../pcre-${pcre_version} \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/client_body_temp \ --http-proxy-temp-path=/var/lib/nginx/proxy_temp \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/lib/nginx/scgi_temp \ --with-debug \ --with-pcre-jit \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_image_filter_module \ --with-http_dav_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_stub_status_module make sudo make install
なお、サンプルコードの内容については2/8(月)開催のnginx Tech Talksでも触れたいと思っています。