====== NGiNX ======
===== Install =====
pkg install nginx
バックエンドで使う場合で実IPの記録が必要な場合にはportsで HTTP_REALIP オプションをON
((2017.12.27:標準でONになっています))
pkg_replace -N nginx
==== luaサポート ====
openRestyはFreeBSDportsにないので、luaとMEMC(memcached)をONで入れてみる
依存パッケージはpkgで
pkg install pcre gmake openssl luajit gettext-tools gettext-runtime indexinfo
install
cd /usr/ports/www/nginx
make install
===== IPアドレス制限 =====
i.e.
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2620:100:e000::8001;
deny all;
}
上から順番に評価されるので、以下のように書くと全部拒否されてしまうので注意。
location / {
deny all;
allow 192.168.1.0/24;
}
===== Basic認証 =====
/usr/local/etc/nginx/conf.d/default.conf
#...省略...
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
#...
}
htpasswdをOpenSSLで
sudo echo "ユーザー名:$(openssl passwd -apr1 パスワード)" > /path/to/htpasswd/hoge
とか
echo -n "USER:" ; openssl passwd -apr1 パスワード
SALTを指定したいなら
openssl passwd -apr1 -salt fugasalt パスワード
htpasswdをperlで
perl -le 'print crypt("password", "acsalt")'
or
perl -le 'print crypt("password", "acsalt")'> /etc/nginx/htpasswd
===== postデータをLogに出す =====
設定ファイルに以下のように
location / {
log_format postdata $request_body;
access_log /var/log/nginx/postdata.log postdata;
}
POSTで通信すると、/var/log/nginx/postdata.logにリクエストのBody部が記録される
===== 参考 =====
[[http://wiki.nginx.org/ConfigurationJa|Nginx Configuration Ja]]
http://bsdbox.co/2014/01/12/emp-nginx-mysql-php-fpm-on-freebsd/
http://forum.nginx.org/read.php?11,38006,46778
http://forum.nginx.org/read.php?3,172673
http://blog.myprod.net/2010/08/14/apache2-suexec-fastcgi-php-5-3-3-fpm-cache-opcode-apc/
http://blog.akagi.jp/archives/3883.html
[[http://www.slideshare.net/toshi_pp/devsummit2015|NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした]]
[[https://gist.github.com/koudaiii/386eb55a29b1adc19c5e|nginx最大パフォーマンスを出すための基本設定]]