freenginx-1.27.3 mainline version has been released, featuring improved handling of keepalive connections during graceful shutdown of old worker processes and Age header support in cache.
NGINX、商用版の重要な機能をオープンソースで無料化、オートスケールやCI/CDフックなどフルスタック化など、今後の発展についてコミットを発表 オープンソースのWebサーバ「NGINX」(エンジンエックス)の開発元であるF5 Networksは、オンラインイベント「F5 NGINX Sprint 2022」を開催中です。 そこでNGINX開発チームは、今後のNGIXの発展に向けて、ソースコードをMercurialからGitHubへ移行すること、有償版の機能をオープンソースへ移植して無料で利用可能にすること、単なるWebサーバ機能だけでなくCI/CD機能などを拡張することなど、3つの約束を発表しました。 GM of #NGINX @rwhiteley0 has just announced three #opensource promises that will come to life
自分への備忘録として。 http://example.com/api/hogehoge?foo=bar にアクセスされたら、 http://example.com:8000/hogehoge?foo=bar という形でリバースプロキシさせたいとき、ついついこんな風に書きたくなります。 location ~ ^/api/(.*)$ { proxy_pass http://example.com:8000/$1$is_args$args; } どういうことかというと、nginxのlocationディレクティブにおける正規表現のキャプチャは、uriデコードされたものがキャプチャされてしまうのです。 なので、もし http://example.com/api/hoge%20hoge こういうURIエンコード済みのURIだった場合、 "http://example.com:8000/hoge hog
nginxのデフォルトの動作ではクライアントから受け取ったリクエストボディをメモリにバッファリングするようになっています。 このメモリバッファのサイズはclient_body_buffer_sizeで変更することができ、リクエストボディのサイズがこのバッファのサイズを越えた場合はclient_body_temp_pathにファイルとして書き出されます。 ログレベルがwarn以上の場合はエラーログにa client request body is buffered ...という警告が出ます。 2015/03/29 14:02:20 [warn] 6965#0: *1 a client request body is buffered to a temporary file /etc/nginx/client_body_temp/0000000001, client: x.x.x.x, ser
ネットワークアプライアンス的なもんのGUIにnginxでたてたリバースプロキシを経由してアクセスしてたところ、更新後に接続がぶった切られる現象で作業がはかどらないとの報告があり、以下の感じにtimeout関連のパラメータをざっくり変えて様子をみることに。 $ sudo vi nginx.conf $ sudo service nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ diff nginx.conf{,.`date +%Y%m%d`} 25,31c25 < keepalive_timeout 130; < send_timeout 13
nginxでリバースプロキシかましてキャッシュさせることでパフォーマンスを稼ぐっていうのは、わりとよくあるシチュエーションなんですが、キャッシュ自体のコントロールっていうのが、案外忘れがちというか、置いてけぼりになることが多いので、キャッシュを削除できる環境を作るメモです。 nginxのリバースプロキシ設定 まず、nginxはデフォルトでキャッシュする機能があるので設定するだけでいけます。下記の設定は、単なるWebサーバ https://example.com をバックエンドとして、全URLをキャッシュする設定です。 http { proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=zone1:4m inactive=7d max_size=50m; proxy_temp_path /var/cache/nginx/tm
http { # proxy_cache_pathとproxy_temp_pathは同じファイルシステム上に配置するのがパフォーマンス上よい # keys_zoneの1mは共有メモリのサイズ。1MiBあたり約8000個のキーを保持できるので、それほど大きくなくて良い # max_sizeは全キャッシュファイルのサイズ合計の上限 # inactiveで指定した期間内にアクセスされなかったキャッシュファイルは、その有効期間に関わらず削除される(デフォルトで10分) proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=24h; proxy_temp_path /var/cache/nginx_tmp; # オリジンから来るCache-Controlを無視する #proxy_ignore_headers
Let's Encrypt で取得したサーバ証明書を Nginxに設定するための手順。 確認した環境は次の通り。 OS: CentOS 7.2 Nginx 1.11 Let's Encrypt 導入の事前準備 証明書を取得したいドメインでアクセスできるサーバを立てておく。 アプリケーションやHTTPサーバのインストールは必ずしも必要ないが、次の2点が必要。 取得したいドメインがDNSで名前解決できる 80番ポートでアクセスできる 以下の操作はそのサーバ上で行う。 certbot のインストール まず、Let's Encrypt のクライアントcertbotをインストール。 インストールと言っても、git で cloneするだけ。 以下の例では、/usr/local にインストールしているが、場所はどこでもよい。 $ cd /usr/local $ git clone https://git
We have several rails apps under common domain in Docker, and we use nginx to direct requests to specific apps. our_dev_server.com/foo # proxies to foo app our_dev_server.com/bar # proxies to bar Config looks like this: upstream foo { server foo:3000; } upstream bar { server bar:3000; } # and about 10 more... server { listen *:80 default_server; server_name our_dev_server.com; location /foo { # th
balancer_by_lua_xxxxx いつの間にやら1 lua-nginx-module に balancer_by_lua_xxx という新しいディレクティブが増えていました。 以下ドキュメントより抜粋。 http { upstream backend { server 0.0.0.1; # just an invalid address as a place holder balancer_by_lua_block { local balancer = require "ngx.balancer" local host = "127.0.0.2" local port = 8080 local ok, err = balancer.set_current_peer(host, port) if not ok then ngx.log(ngx.ERR, "failed to set
nginxをJavaScriptで拡張できるnginScriptがローンチされたので軽く触ってみた。 nginScriptをビルド nginScriptは今のところnginx本家のMercurialリポジトリからcloneすることができる。また、nginxモジュールの実装とnginScriptの実装が一緒に含まれているため、まずはnginScriptをビルドする。
HTTPレスポンスヘッダにサーバのバージョンの表示を消す なぜ必要? 潜在攻撃者への情報提供になることも。 もし使用中バージョンの脆弱性が明らかになった時、恰好の標的になるとか。 対応 nginx.confのhttpディレクティブに server_tokens off; を追加。
こんにちは。インフラチームの野島です。 最近、cybozu.com はロードバランサを Apache から nginx に置き換えました。 (参考: cybozu.com のリバースプロキシを nginx にリプレイス) 置き換えの一環として、Apache に実装していた DoS 対策の仕組みを nginx の拡張モジュールにする形で移植しました。今回、この拡張モジュール nginx-maxconn-module を OSS として公開しましたので紹介します。 背景 DoS 対策 秒間リクエスト数 v.s. 瞬間同時リクエスト数 実装方針 nginx-maxconn-module 基本的な使い方 高度な使い方 インストール おわりに 背景 本題に入る前に、cybozu.com において、HTTP リクエストがどのように処理されているかを説明します。 cybozu.com では、負荷分散のた
■ [mruby][ruby] 30d.jp に ngx_mruby を導入した話 (社内で共有した内容の転記です) 30d.jp に ngx_mruby を導入して、誰も手出しができないミドルウェアの置き換えとパフォーマンス向上を実現しました。 前提要件 30d.jp に保存している画像はサービスにログインしている時のみ見えるようにしたい 画像は MogileFS に保存しており、Rails を介さないでレスポンスを返したい ngx_mruby 導入前のシステム構成 ngx_mruby 導入後のシステム構成 導入後の効果 siege を用いたベンチマーク(siege -b -c 8 -r 50)でレスポンスタイムで 1割ちょっと、転送レートで 2割ちょっとの改善となりました。 Elap Time, Resp Time, Trans Rate, Throughput, Concurrent
今回は、.mdファイルにMarkdown形式で文章を書いておき、それをApache httpdやnginxでホストし、ブラウザからアクセスするとHTMLに変換されて表示されるMarkdownコンバータモジュールをmrubyで書く方法を紹介したいと思います。 Markdownのテキスト形式で保存しているファイルを適当にApache上で配信すれば、ブラウザ上でHTMLで綺麗に閲覧できるといったよくあるアレをWebサーバを拡張して実装してみようという話です。自分の開発環境やローカル環境のメモ置き場にも良いかもしれません。 Apacheモジュールやnginxモジュールで幾つかそういった機能を提供するモジュールはあると思うのですが、もう少し独自で改良したかったり、C言語で実装せずにもっと簡単に自分で書いてみたい、といった要求に本エントリを読むと答えられると思います。 もちろんそれらの機能の実装は、僕
nginx first decides which server should process the request. Let’s start with a simple configuration where all three virtual servers listen on port *:80: server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_name example.net www.example.net; ... } server { listen 80; server_name example.com www.example.com; ... } In this configuration nginx tests only the re
Packages for RHEL 7 and SLES 12 are built without HTTP/3 support because OpenSSL used by those doesn't support TLSv1.3. Before you install nginx for the first time on a new machine, you need to set up the nginx packages repository. Afterward, you can install and update nginx from the repository. This section applies to Red Hat Enterprise Linux and its derivatives such as CentOS, Oracle Linux, Rock
nginxでHTTPレスポンスヘッダを限りなく少なくした記録です。 構成はrails+unicorn+nginx nginxのインストール nginxでHTTPヘッダを削除する機能を有効にするにはソースからインストールしてモジュールを追加する必要があるらしい。 ので、ソースからインストールします。 公式から好きなバージョンをDL http://nginx.org/en/download.html とりあえずインストール mkdir /usr/local/src cd /usr/local/src tar xzf nginx-xxx.tar.gz cd nginx-xxx ./configure make make install モジュールを取ってくる cd /usr/local/src git clone https://github.com/agentzh/headers-more-n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く