カテゴリー
Uncategorized

nginx の knowhow

nginx すごいですね。conf がめちゃくちゃになるのが難点ですが。apache よりはマシですかね。

nginx + ngx_postgres + postgresql + ajax もすごいですね。 cgi とか fcgi とか wsgi とかなにそれ食えるの状態。

現在、”$” をエスケープする方法はない

http://forum.nginx.org/read.php?2,218536,218556#msg-218559

geo $d {
default "$";
}
set $var '$d'; # とかするしかない。
if ($foo ~ '^foo$'){ # これは大丈夫だったりする
return 200;
}

ngx_postgres などキャッシュ機能がない addon を使用するときは自分に向けて reverse proxy する

ngx_postgres はすげー便利ですがキャッシュ機能が見当たらないので reverse proxy で loopback して無理やりキャッシュします。

なんか奇妙な感じですが。

user  www-data;
http {
# required: chwon www-data:www-data /var/cache/nginx/loopback
proxy_cache_path /var/cache/nginx/loopback
keys_zone=loopback:4m max_size=50m;
# required: chown www-data:www-data /var/tmp/nginx
proxy_temp_path /var/tmp/nginx;
proxy_cache_key $scheme://$host$request_uri$is_args$args;
server {
location /foo/ {
proxy_cache loopback;
proxy_cache_valid 1m;
proxy_pass http://127.0.0.1:80/path/;
}
}
}

正規表現で文字列を抽出するときは if を使用する

if ($foo ~ "^(\d+)-(\d+)$"){
set $var "$1,$2";
}

ファイルを URL にマッピングする

ディレクトリじゃなくてファイルを直接指定したい時に。

location = /path/to/file { # "=" は必須です
default_type "text/html"; # 指定しないと default_type の値が使用されます
alias /home/www-data/html/file.html;
}

application/json

nginx デフォルトの mime.types ファイルには json がないので次の行を追加しましょう。

application/json                      json;
# nginx.conf などでこのように指定するのはダメ。types は 2 回以上使用できない
types {
application/json                      json;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です