Handling a tremendous amount of images with Fastly / Yamagoya Traverse 2020
![Load balancer management with Consul](https://cdn-ak-scissors.b.st-hatena.com/image/square/19929075f24a1a2b1701b3a28dfc4201a229bec9/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F0c297331a8714bb7bddb7fc9fc8cd5d1%2Fslide_0.jpg%3F6663451)
どうもこんにちは。racchai です。 Nginxの設定が意図通りの動きにならなくていろいろ調査したので、共有したいと思います。 proxy_next_upstream とは 何が問題なのか proxy_request_buffering を無効にしてみる 解決方法 まとめ proxy_next_upstream とは Nginx を複数サーバー分散構成のロードバランサー(リバースプロキシ)として動作させる際に指定するディレクティブです。 バックエンドサーバーとの通信を行い、何が起きたら次のサーバーへリトライするかを定義するというものになります。 例えば、レスポンスが 500 エラーだったら次のサーバーへリトライというような設定をすることが可能です。 何が問題なのか proxy_next_upstream: error という設定に問題がありました。 これはバックエンドサーバーとの通信中
こんにちは。吉川 ( @rrreeeyyy ) です。今期オススメのアニメはリゼロです。 Nginx は設定ファイルの記述力も高い、大変便利な Web サーバです。 便利な反面、設定ファイルの複雑化や、設定に依っては意図しない挙動を引き起こしてしまうこともあります。 そこで本稿では docker 並びに infrataster を使用し、 Nginx の挙動をテストすることによって、安全に Nginx の設定を記述する方法について紹介します。 テスト対象の Nginx の仕様 今回は例として、次のような仕様の Nginx のテストについて考えます。 ネットワーク帯は 10.0.0.0/16 を使用している Nginx の前段として L7 ロードバランサが存在している L7 ロードバランサが https を終端している Nginx 自体は 80 番ポートと 8080 番ポートにて待ち受けてい
OpenRestyはnginxのほかにngx_luaをはじめとするCで書かれた各種サードパーティモジュールとngx_luaのAPIを利用したrestyモジュール、そしてLua/LuaJITで構成されています。 OpenRestyに含まれているnginx自体は本家のnginxと基本同じなので、別にOpenRestyを利用しなくても自分でngx_luaを組み込んだり、サーバ上にrestyモジュールを配布することで似たような環境を構築することは可能ですが、OpenRestyであれば主要なモジュールやライブラリが./configure、make、make installの一連の流れですべてゴソッとインストールされますし、OpenRestyのconfigureスクリプトはnginxのconfigureスクリプトを継承したものなのでnginxのconfigureオプションをほぼそのまま利用することもで
東京でウェブオペレーションエンジニアをしている id:dekokun です。 本記事ではAWSでELBを使用してHTTP/2 or SPDYを運用する上で直面する問題としてのクライアントのIPアドレスが分からなくなる問題の紹介を行い、その後に解決策としてのPROXY protocolの紹介・PROXY protocolの設定方法について記載します。 この記事は先日公開しましたAWS EC2でのHTTP/2 or SPDY導入方法 - Hatena Developer Blog (以下、"前回の記事"と呼びます) の続編となります。 ELBのTCPモードにおける問題点 解決策としてのPROXY protocol PROXY protocolが必要となる技術的背景及びPROXY protocolの動作 ELB + nginx構成でのPROXY protocolの設定方法 ELBの設定 ngin
何の因果かわかりませんが、お仕事でちょっと賢いリバースプロキシサーバ(以降、RPサーバ)を作る機会が2回ありました。 HTTPヘッダの内容によってプロキシ先のサーバを動的に切り替えるようなものです。 この要件を満たすため、RPサーバには以下のようなプログラムが必要になります。 HTTPヘッダの内容を知るためにHTTPリクエストをパース プロキシ先のサーバへHTTPリクエストをプロキシ プロキシ先のサーバはRedisから取得 レスポンスをクライアントへ返す 大量のリクエストも捌ける 1回目はRubyとI/O多重化のライブラリを使ってイベント駆動型のRPサーバを自作してみました。 が、振り返ってみるとこれは失敗でした。 なぜ失敗だったのか? Rubyでイベント駆動型のサーバを書こうとすると様々なものが途端に大変になります。 イベント駆動型サーバではほとんどの箇所でブロックする処理を書けません。
「nginx で omniauth を利用してアクセス制御を行う」という記事で、 ngx_http_auth_request_moduleの存在を知ったので、 Golangでnginx_omniauth_adapterと似たようなものを作ってみました。 shogo82148/go-nginx-oauth2-adapter 背景 typester/gateは単体でも動くようになっていますが、 例えばIP制限などちょっと高度なことをしたい場合には結局nginxを前段に置く必要があります。 nginxとgateの設定を同時にいじる必要があって煩雑だと感じていました。 そんな中「nginx で omniauth を利用してアクセス制御を行う」という記事で、 ngx_http_auth_request_moduleの存在を知りました。 gateが認証+Proxyをやってしまうのに対して、認証だけRu
nginxでレスポンスコード200以外(4xxとか5xx)でもレスポンスヘッダーを付けたいことありますよね。 そんな時、always を付与すると、ステータスコードにかかわらずレスポンスヘッダーを付与することが出来ます。
Registration is now open for Microservices March 2023. See the agenda and sign up here. Editor – This seven‑part series of articles is now complete: Introduction to Microservices (this article) Building Microservices: Using an API Gateway Building Microservices: Inter-Process Communication in a Microservices Architecture Service Discovery in a Microservices Architecture Event-Driven Data Managemen
nginxの記事を書くのは久しぶりの滝澤です。 nginxにApache HTTP Serverの動的共有モジュール(Dynamic Shared Object)(DSO)のような機能が欲しいと思っていた人も多いでしょう。筆者もそうです。秘伝のタレのようなビルド用のスクリプト(実際はRPMパッケージのSPECファイル)を保守し続けるのは辛いなと思っていました。 そのような方々に朗報です。2016年2月9日にリリースされたnginx-1.9.11において動的モジュール(Dynamic Modules)がサポートされました。 しかし、Apache HTTP ServerのDSOと比べると、現時点ではまだ制約があります。 本記事ではnginx-1.9.11における動的モジュールの説明と制約について説明します。 注: 2017年2月22日にフォローアップ記事「nginxの動的モジュールの最新状況(
nginx is a small and fast webserver which generally outperforms most of the alternatives out of the box, however there is always room for improvement. In addition to operating as a web-server nginx can also be used as reverse HTTP proxy, forwarding requests it recieves to different back-end servers. Optimizing nginx webserver. Optimizing nginx reverse proxy. General Tuning nginx uses a fixed numbe
はじめに 一年程前にリリースされた Nginx v1.9.0で、Streamモジュールが追加されました。 Streamモジュールを使うと、任意のポートでNginxがTCPの接続を待ち受けるよう設定できます。 この機能は、例えばNginxをTCPロードバランサとして構成する時に威力を発揮するようです。 nginx Blog - TCP Load Balancing with NGINX 1.9.0 and NGINX Plus R6 強力そうな機能ですが、個人的にNginxをTCPロードバランサとして使っていなかったため、特に機能を活用する場もなくスルーしていました。 ところで、つい先日公開されたNginxのモジュール、stream-lua-nginx-module、及び、stream-echo-nginx-moduleを組み合わせれば、任意のポートで待ち受けるTCPサーバをLuaで記述でき
Chartbeat measures and monetizes attention on the web. They were experiencing slow load times and TCP retransmissions due to default system settings. Tuning various TCP, NGINX and EC2 ELB settings like increasing buffers, disabling Nagle's algorithm, and enabling HTTP keep-alive resolved the issues and improved performance. These included tuning settings like net.ipv4.tcp_max_syn_backlog, net.core
以前から本家のブログ等でもアナウンスされていたnginxのモジュールの動的組み込みの仕組みが先日リリースされた1.9.11で入りました。昨年のnginx.confでも中の人によるDynamic Modules Developmentという発表がありましたが、ほぼこちらに沿う形で導入されています。 追加されたconfigureオプション 以下はnginx-1.9.10と1.9.11でのconfigure --helpの差分です。 --- 1.9.10 2016-02-10 09:47:05.000000000 +0900 +++ 1.9.11 2016-02-10 09:47:18.000000000 +0900 @@ -3,6 +3,7 @@ --prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pa
This document provides an overview and examples of using ngx_mruby, which allows embedding the mruby scripting language in the nginx web server. It introduces ngx_mruby and how it works, provides instructions for building and installing ngx_mruby, and gives several code examples for common tasks like content handling, logging, redirection, and authorization using ngx_mruby. Key features covered in
This document provides an overview and examples of using ngx_mruby, which allows embedding the mruby scripting language in the nginx web server. It introduces ngx_mruby and how it works, provides instructions for building and installing ngx_mruby, and gives several code examples for common tasks like content handling, logging, redirection, and authorization using ngx_mruby. Key features covered in
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く