目次

NGiNX

Install

pkg install nginx

バックエンドで使う場合で実IPの記録が必要な場合にはportsで HTTP_REALIP オプションをON 1)

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部が記録される

参考

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

NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした

nginx最大パフォーマンスを出すための基本設定

1)
2017.12.27:標準でONになっています