読者です 読者をやめる 読者になる 読者になる

うまいぼうぶろぐ

linuxとhttpdとperlのメモ

SSLアクセラレータ(reverse proxy)配下のnginxで"/"なしのディレクトリにアクセスされたときのredirect

hogem.hatenablog.comだいぶ前のだけど。どうしてもSSLのままredirectさせたい場合の解決方法。やや強引だけど。-dでrequestがdirectoryに来て、かつ "/"がない場合はrewriteしてhttpsに飛ばす設定 if (-d $request_filename) { rewrite ^/(.*[^/])$ https:/…

nginxでproxy_cacheしてもcacheされない条件

http://nginx.org/en/docs/http/ngx_http_proxy_module.html backendサーバからExpires、Cache-Controlなど特定のheaderが返ってくるとcacheされない。 Disables processing of certain response header fields from the proxied server. The following fiel…

nginxでerror_pageにproxy_pass配下のURLを指定する

たぶん普通?は逆で、例えば 403 error時にproxy_passではなく localのerror_pageを見せたいというときは こう。 error_page 403 /403.html; proxy_intercept_errors on; 今回は、403 error時にbackendのapacheの特定のURLを見せたいという場合 named locatio…

nginxで特定の条件(ソースIPなど)の場合のみreverse proxyとして動作させる設定

こんなトリッキーなことしないほうが良い気もするけど。ソースIPの指定はif $remote_addr で正規表現で書いてもいいけど、複数あると煩雑になるのでgeo使ったほうが楽ですね。 気をつけないといけないのはifのの中などでproxy_passを指定する場合は URLの指…

名前付きlocation内でproxy_pass しているサーバが落ちているときの502 Bad Gatewayの時にerror_page で指定したエラーページを表示する

普通にerror_page 502を設定しているだけだと、proxy_passで指定しているサーバが落ちた場合はnginx defaultの502が表示されるので、recursive_intercept_errors on; も必要。 error_page 502 /502.html; recursive_intercept_errors on;追記 もはや記憶の彼…

nginx wikiのproxy_redirect の順番が間違っている気がする件

http://wiki.nginx.org/LikeApache http://wiki.nginx.org/HttpProxyModule#proxy_redirect proxy_redirect apacheのProxyPassRervese のようなことをする設定。defaultの設定は proxy_redirect default;で、これはLocationヘッダのHostとportの書き換えまで…

nginxでfavicon.icoが存在する場合はファイルを返して、存在しない場合はempty_gifを返す

404の時に名前付きlocationで設定したempty_gifを使えばいけますね。下の設定はついでにlog捨てている。 nginx.conf location = /favicon.ico { error_page 404 = @favicon; access_log off; log_not_found off; } location @favicon { empty_gif; access_lo…

nginx + php + fastcgi

あらかじめphpをcgi用(--with-apxs をつけずに)でインストールしておくこと(php-cgi バイナリが必要)。fastcgiはepelにspawn-fcgi があるのでこれを使う。 # yum install --enablerepo=epel spawn-fcgi # vim /etc/sysconfig/spawn-fcgi #### socket, php-cg…

nginx + perl + fastcgi

http://www.ruby-forum.com/topic/145858 http://library.linode.com/web-servers/nginx/perl-fastcgi/ http://library.linode.com/web-servers/nginx/perl-fastcgi/centos-5 http://d.hatena.ne.jp/Kmusiclife/20111107/1320678141 install fastcgi # yum i…

nginx fastcgi で PATH_INFO を取得する

fastcgi などを設定した際に location . \.cgi$ と設定すると、/index.cgi/foo/bar などのURLに対応できないのでやった。 nginx.conf location ~ \.cgi($|/) { include fastcgi_params; fastcgi_pass 127.0.0.1:8999; fastcgi_index index.cgi; fastcgi_spli…

nginx で特定IPからのアクセスをログに取らない

LoadBalancer からのアクセスをログに取らない、みたいな。 http://wiki.nginx.org/HWLoadbalancerCheckErrors この例では一部のLBからにstatus 400 のエラーを返してしまうときに、error_page /400 に飛ばして、そのlocation内でgeo module を使ってIPがマ…

nginxで最大接続数を大きく増やす

worker_connections だけ増やしていると [alert] 27052#0: accept() failed (24: Too many open files) などと言われて悲しいので設定する。 /etc/security/limits.conf nginx soft nofile 10000 nginx hard nofile 10000 /proc /proc/sys/fs/file-max の値…

apacheとnginxでX-Reproxyを使う

lighttpd でも使えるらしいんですが、個人的に使ってないので割愛 http://www.google.co.jp/search?gcx=w&sourceid=chrome&ie=UTF-8&q=lighttpd+x-reproxy X-Reproxy-URLはPerlbal + MogileFSなどでファイル配信する場合によく使う、とは聞いていたのですが…

wordpress を高速化させる

WP plugin で高速化 WP Super Cache でcacheする Script Compressor でcss,js の余分な空白を削除する など。他にもいっぱいありそう。 携帯、iphone,スマフォ用表示のplugin で高速化 携帯などからアクセスされた際に、PC用の表示ではなくて、それぞれに適…

nginx の favicon に関する設定メモ

http://wiki.nginx.org/Main /favicon.ico のfile not found のerror logがうざい locationを使ってlogを出力しないように設定する。 location = /favicon.ico { log_not_found off; } 一方、apache はfile not found はerror logに全てロギングされるので、…

SSLアクセラレータ下でnginx使うときのservername

http://d.hatena.ne.jp/hogem/20081116/1226840713 server { listen 8443; ## その他の設定 } こうしていると、リダイレクトがかかったときに locationヘッダにもportが含まれちゃうなー。 $ curl -I https://nginx.example.com/foo HTTP/1.1 301 Moved Perm…

nginxのupstreamの死活監視の判定

めちゃ早いのな。backendのサーバが落ちた場合、数秒程度で切り離してくれる。

nginx - locationの文字列と正規表現の優先順位

http://wiki.nginx.org/NginxHttpCoreModule#location 少しはまった。正規表現の設定のほうが後で評価されて、設定が上書きされるのか。そういえば、apacheもそうだったかな? 例 URL: /fooにaliasを設定しているとする。で、/foo以外の画像(正規表現で指定)…

nginxでngx_http_upstream_hash_moduleを有効にする

ngx_http_upstream_hash_module upstreamディレクティブでbackendのサーバに振り分ける際に、特定の変数(のハッシュ値)パーシステンスできるモジュール。デフォルトではremote addr(ソースIP)でパーシステンスするip_hashがある。 http://wiki.nginx.org/Ngi…

nginxのversion up時の挙動

構築中のサーバのnginxのバージョンを上げたときに気がついた。lwp-requestをごりごり流しつつ、pkill nginxするのも面倒だなー、サービスしてないしこのままでいいかーと、nginxが起動している状態でmake installした。すると、既存のPREFIX/sbin/nginxはPR…

nginx

http://plaza.rakuten.co.jp/kugutsushi/diary/200707210000/ http://wiki.nginx.org/Main nginxっていうwebサーバが軽いらしい。configもわかり易い感じでなかなかいいのでは。