BLOG::はるかさん

はるかさん のブログです。近況情報や技術的な話題など。

書籍「nginx実践入門」のサンプルコードを公開しています

f:id:harukasan:20160115160510j:plain

サポートページなどには掲載して頂いているのですが、nginx実践入門のサンプルコードをGithubで公開しています。

github.com

本書は紙面の都合上、サンプルコードの説明よりも文章やディレクティブの挙動に重きをおいて説明しているところが多々あり、そのためリストも内容が大きく省略されていたりします。公開しているサンプルコードでは本文中の不足を補うため、基本的にはそのまま動作するコードにすることを心がけて作成しています。実際にコードをそのまま確認したい方はサンプルコードを利用して頂くと手間が省けるかもしれません。

また、本書の設定ファイルが動作する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でも触れたいと思っています。

eventdots.jp