- 設定ファイルは上から下に評価されるわけではない
- location の順序だけでなく、location 内部の各種設定も含む
- configure する際に読み込む順番でも変わる?
- if はネストできないし、and/or で複数の条件を設定できない
- スクリプト言語の埋め込みができる
- Perl は標準でサポート
- Lua のモジュールもある
- JavaScript のモジュールもあるが node.js と互換がないし、ビルドも面倒でオススメではない
- if 等との使い分けはその時々のバランス考えて
- 設定ファイルのデバッグは echo, Lua/print 等で
- 変数とか http://wiki.nginx.org/NginxHttpCoreModule#Variables
- http://wiki.nginx.org/IfIsEvil
- 制御構造っぽいの http://wiki.nginx.org/HttpRewriteModule
break, if, return, set
build Nginx on Ubuntu 11.04
ubuntu でのビルド手順と個人的な設定。
% mkdir nginx; cd nginx % git clone https://github.com/simpl/ngx_devel_kit % git clone https://github.com/simpl/ngx_http_set_hash % git clone https://github.com/calio/form-input-nginx-module % git clone https://github.com/agentzh/echo-nginx-module % git clone https://github.com/agentzh/encrypted-session-nginx-module % git clone https://github.com/agentzh/set-misc-nginx-module % git clone https://github.com/agentzh/rds-json-nginx-module % git clone https://github.com/FRiCKLE/ngx_postgres % sudo apt-get install build-essential libpcre3-dev libxml2-dev libxslt1-dev libgd2-noxpm-dev libgeoip-dev postgresql-server-dev-9.1 luajit libluajit-5.1-dev % wget http://nginx.org/download/nginx-1.2.1.tar.gz % tar xf nginx-1.2.0.tar.gz % cd nginx-1.2.0 % LUAJIT_LIB=/usr/local/lib/ LUAJIT_INC=/usr/include/luajit-2.0 \ ./configure --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-scgi-temp-path=/var/lib/nginx/scgi \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ --lock-path=/var/lock/nginx.lock \ --pid-path=/var/run/nginx.pid \ --with-debug --with-http_gzip_static_module --with-http_realip_module \ --with-http_ssl_module --with-http_sub_module --with-ipv6 \ --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl \ --add-module=../ngx_devel_kit \ --add-module=../set-misc-nginx-module \ --add-module=../echo-nginx-module \ --add-module=../lua-nginx-module \ --add-module=../encrypted-session-nginx-module \ --add-module=../form-input-nginx-module \ --add-module=../ngx_postgres \ --add-module=../rds-json-nginx-module \ --add-module=../ngx_http_set_hash % make; sudo make install