これは何?
リクエストが来たとき、バックエンド①が404ならバックエンド②にアクセスして、バックエンド②が404ならバックエンド③にアクセスして…みたいなプロキシサーバ。
開発用の画像配信サーバに画像がなかったときに、本番にアクセスしにいく、みたいな用途で使います。
それnginxで(ry
できます。 なんかこんなQAがあって、
server { listen 80; location / { proxy_pass http://foo.bar.dev/ proxy_intercept_errors on; error_page 404 =200 /production/$uri; } location /production { internal; rewrite ^/production/(.*) /$1 break; proxy_pass http://foo.bar.prod/ } }
こんな設定にしたら、できました。
が、バックエンドが三つは無理でした。 できるのかもしれないけど、わからなかった。。。
それvarnishで(ry
できます。
return (restart);
とかでできます。
というか、もともとそうやって実装されてたんですけど、オーバーキル感があるので、結局、自前で実装しました。
で
でまあ、utsusemiというプロキシサーバをGoで書きました。 Golang便利。
こういう設定を書いて、起動すると
#port = 11080 [[backend]] target = "http://httpstat.us/404" #ok = [200] [[backend]] target = "https://www.google.co.jp" #ok = [200] [[backend]] target = "https://s.yimg.jp" #ok = [200]
yahooの画像にもgoogleの画像にもlocalhost:11080でアクセスできます。
その他
はてなブログ、tomlのsyntax highlightをサポートしてくれないかなー (nginxをサポートしてて驚いた。すばらしい)