====== 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最大パフォーマンスを出すための基本設定]]