nginx
$ nginx -T で設定見れる
$ nginx -t で設定の syntax check
root と alias
root はそのディレクトリを root として、location ディレクティブのパスを解釈する
alias は location ディレクティブのパスを置き換える
code:nginx.conf
location /static {
root /dir/to/public;
}
# /static/js/hoge.js -> /dir/to/public/static/js/hoge.js
location /static {
alias /dir/to/public;
}
# /static/js/hoge.js -> /dir/to/public/js/hoge.js
location と alias の trailing slash
alias はパスが置換されるようにふるまう
両方つけるか両方つけないかにする, 一方にだけついてるとハマる
code:nginx.conf
location /static/ {
alias /dir/to/public;
}
# /dir/to/public/js/hoge.js を参照するためには /static//js/hoge.js にアクセスする必要がある
正規表現は "" で囲む
正規表現内で blacket {} を使うとそこがブロックの開始として解釈されてしまう
code:regexp-blacket.conf
location ~ ^/hello{1,20} { ... } // NG!
location ~ "^/hello{1,20}" { ... } // OK
docker で設定確認する
サッと立てて nginx -c すればよい
docker run -it --rm -v ${PWD}/nginx.conf:/nginx.conf nginx:latest nginx -c /nginx.conf
デカいファイルをダウンロードさせる
管理画面から巨大な csv 落としたりするエンドポイント
code:download.conf
location {
# download ならどちらか一方は要らないような
proxy_send_timeout 10m;
proxy_read_timeout 10m;
client_max_body_size 100m;
}