知らないと損をするNginx設定

以前Ubuntuに最新のnginxをインストールという記事を書きましたが、今回はその後の特殊な設定について少しご紹介いたします。

プロキシされた環境で正しいIPを取得する

Nginxの前段にELB・バランサ等プロキシがあった場合、何も設定しないと正しいクライアントのIPがとれなくなります。
この場合は下記のような設定が必要となります。
例)
プロキシサーバが複数あり、IPが10.0.1.2、10.0.1.3だった場合
/etc/nginx/conf.d/realip.conf

set_real_ip_from 10.0.1.2;
set_real_ip_from 10.0.1.3;
real_ip_header X-Forwarded-For;

※real_ip_headerはプロキシサーバから送られてくるヘッダを指定します。ほとんどの場合はX-Forwarded-Forです。
これで$remote_addrへクライアントIPが入るようになります。
また、この場合どのサーバを通って来たかは$realip_remote_addrに入っています。※Nginx 1.9.7以降

参考
http://nginx.org/en/docs/http/ngx_http_realip_module.html

Nginx + PHP-fpm環境でNginx設定でPHP設定をする。

ちょっと何を言っているかわからなくなっていますが、これにより特定のロケーションのみ設定を加えることができます。
下記ではphp.iniやini_setで設定するような値である「memory_limit」「post_max_size」「upload_max_filesize」を設定しています。

Location /foo {
    fastcgi_pass unix:/var/run/php-fpm.sock;
    include fastcgi_params;
    fastcgi_param PHP_VALUE 'memory_limit = 256M \n post_max_size = 250M \n upload_max_filesize = 200M';
}

参考
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_param

今回は少しマイナーな設定を紹介してみました。
お役に立てれば幸いです。


コメント