Featured Partner Articles Cloud cost optimization best practices Read moreHow to choose a cloud provider Read moreDigitalOcean vs. AWS Lightsail: Which Cloud Platform is Right for You? Read more
何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。 HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。 この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。 HTTPヘッダの内容を知るためにHTTPリクエストをパース プロキシ先のサーバへHTTPリクエストをプロキシ プロキシ先のサーバはRedisから取得 レスポンスをクライアントへ返す 大量のリクエストも捌ける 1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。 が、振り返ってみるとこれは失敗でした。 なぜ失敗だったのか? Rubyでイベント駆動型のサーバを書こうとすると様々なものが途端に大変になります。 イベント駆動型サーバではほとんどの箇所でブロックする処理を書けません。
以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot
20140826.md Express / Socket.IO をスケールアウトしてみよう Seiya Konno Works at Uniba Inc. (http://uniba.jp) https://twitter.com/nulltask https://github.com/nulltask https://fb.me/nulltask スケーラビリティとは システムの規模に依らず機能を適応できること リクエストに対するスケーラビリティ アプリケーションコードに対するスケーラビリティ Express https://github.com/strongloop/express 言わずと知れたウェブアプリケーションフレームワーク 右も左もわからなかった頃 => app.js の肥大化 メンテナビリティの低下 アプリの規模が大きくなってもメンテナビリティを確保したい Mounting
ISUCON5予選に@kazeburo、@shmorimo、@cubicdaiya(敬称略)の3人でチーム「GoBold」として参加してきました。 isucon.net 15時過ぎるくらいまではスコアが伸び悩んでいましたが、結果的に2位でフェニッシュすることができました。 以下はスコアの遷移をグラフ化したものです。 GoBoldスコア遷移のグラフ #isucon pic.twitter.com/JKkfjiVJnS— Shigeki Morimoto (@shmorimo) September 28, 2015 準備と方針 今回は予選に臨むにあたって事前に以下の準備を行いました。 Wikiで各種ミドルウェアの定石設定テンプレートを共有 Slackでプライベートグループを作成 各人個別にGCE上でISUCON4予選問題(Ubuntu)の復習 次に事前に軽く打ち合わせして使用言語などの方針を固
nginxは近年急速にユーザ数を伸ばしているOSSのHTTPサーバです。2015年3月のNetCraftの調査結果によると現在nginxのシェアは全世界のWebサイトの十数パーセントを占めるまでになっています。 nginxがこれだけ急速な勢いでユーザ数を伸ばしている要因の一つとしてnginxのソースコードに直接手を入れることなくモジュールを開発するための仕組みが整っていることが挙げられます。HTTPサーバに求められる要件は非常に多岐に渡るため、コア開発者だけでなくユーザ開発者が自分のニーズを満たすためにHTTPサーバを拡張できるのは重要なポイントです。そして実際に多くの開発者の手によって様々な用途のモジュールが開発され、nginxの強固なエコシステムが形成されてきました。 本トークでは拙作のngx_small_lightやngx_dynamic_upstreamといったnginxモジュール
9. 静的コンテンツを Reverse Proxy で配信 Reverse Proxy: クライアントからの接続を 受け、Applicationサーバに処理を中継す る。画像,js,css などの静的コンテンツを返す 役割もある Application Server: ユーザからのリクエス トを受けて適切なページを構築・レスポン スを行う 10. /etc/httpd/conf.d/isucon.conf <VirtualHost *:80> DocumentRoot /home/isu-user/isucon/webapp/public RewriteEngine on RewriteCond REQUEST_URI !^/favicon.ico$ RewriteCond REQUEST_URI !^/(img|css|js)/ RewriteRule /(.*)$ http://loc
AMIが公開されたのでもう一度やってみた。 AMIについてはこちらのエントリに書かれています ISUCON4 予選問題の解説と講評 & AMIの公開 : ISUCON公式Blog まず ami-e3577fe2 を m3.xlargeで起動します。 CPUは model name : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz でした。 とりあえず、MySQLのindexを追加する。init.shに追加 $ cat init.sh cat <<'EOF' | mysql -h ${myhost} -P ${myport} -u ${myuser} ${mydb} alter table login_log add index ip (ip), add index user_id (user_id); EOF ベンチマークツールのhttp keepal
お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第10回目。前回は、Nginx と PHP-FPM をインストールするところまでやりました。 今回は、Nginx で WordPress を動作させ、リバースプロキシを有効にします。設定の意味も出来る限り調べ、まとめました。 目次 Nginx 基本設定 VirtualHost 設定 WordPress ファイルの 所有者を nginx に変更 WordPress の functions.php で expires header を出力 WordPress の 404 ページをキャッシュする アクセスログを確認する キャッシュ系プラグインの利用状況 Nginx 基本設定 Nginx 全体の設定は /etc/nginx/nginx.conf で設定します 。設定は さくらVPS512で、Yahoo
A guide to optimizing Nginx for maximum performanceMost setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and there, and you’ve got a web server! And, in most cases, a vanilla nginx install will work just fine for serving your website. However, if you’re REALLY trying to squeeze performance out of nginx, you’ll have to go a few steps further. In this guide, I’
Fluent Dashboardって? Fluent Dashboardは、Fluentdで集計したデータをグラフやテーブルで表示できるGoogle Spreadsheet。fluent-plugin-https-jsonを使ってイベントログを送ると、以下のようにリアルタイムにデータを表示してくれる。 使い方 詳しい使い方はREADMEにある通りで、Spreadsheetをコピーして公開設定等をポチポチするだけで準備完了。3分もかからない。あとはfluent-plugin-https-jsonのログ送信先URLとしてFluent SpreadsheetのエンドポイントURLを指定すれば動き始める。 集計ログの表示向け 任意のFluentdログを受け取ってグラフやテーブルを描けるけど、大量のログを直接受け取ることはできない。集計後のログを3秒に1回ほどの割合で受け取って表示する、といった使い
Modern Ciphersuite: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES1
はじめに nginx を使っている場合にサービスのメンテナンス等に役立ちそうな小ネタ 他にもネタがあれば随時書く 小ネタ #1 設定に if が利用出来る 設定に if が使える 良く知られたことなのかもしれないが、nginx の設定には if が使えるので深夜メンテナンス等で特別な処理を噛ませたい場合には以下のように出来る。 location / { root html; index index.html index.htm; if (-f "/tmp/maintenance" ) { rewrite ^(.*)$ http://172.17.0.3:8000/maintenance.html permanent; } } 上記の例だと /tmp/maintenance にファイルを touch すると... http://172.17.0.3:8000/maintenance.html
Railsでは、request.subdomainで簡単にサブドメインの判別ができます。 詳しくはRailsCastsに書いてありますが、特にgemを入れなくても、url_forに1つ機能追加するだけで、実用的なサブドメイン機能が使えます。 何が嬉しいかというと、 ja.example.com en.example.com のようなwikipedia風のURLを作ったり、ブログサイトでユーザ毎にサブドメインを切ってあげたりできるわけですね。 サブドメインは当然HTTPリクエスト時のホスト名から取得されるので、環境によってはうまく取得できない場合があります。 ローカルでテストする場合 通常localhost:3000で開発すると思いますが、これにサブドメインを付けてja.localhost:3000としても、127.0.0.1に名前解決はしてくれません。 hostsファイル(/etc/hos
auth_basic "QS Beta TEST"; auth_basic_user_file "/home/httpd/.htpasswd"; server{ listen 80; server_name xxx.abc.com; location / { auth_basic "QS Beta TEST"; auth_basic_user_file "/home/httpd/.htpasswd"; proxy_pass http://localhost:4009; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; allow all; } }
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く