NginxをフォークしたFreeNginxは、FreeNginxを名乗る最初のバージョンとして「FreeNginx 1.25.4」正式版を公開しました。Windows版とLinux版のバイナリも提供されています。 FreeNginx 1.25.4は、FreeNginxへの名称変更と同時にフォーク直前のNginx 1.25.3からいくつかのバグフィクスが行われています。 ほぼ同時にNginxからも同バージョンとなるNginx 1.25.4がリリースされており、こちらもCVE-2024-24989、CVE-2024-24990の2つの脆弱性の修正を中心としたバグフィクス版です。そしてNginxとFreeNginxのそれぞれのリリースノートを見る限り、どちらもほぼ同じ修正内容となっているため、バージョン1.25.4においては両者はほぼ同一のものと見られます。 今後FreeNginxがNginxと
ついさっき、ついにHTTP/3対応のブランチが本家のnginxにmergeされました。 このまま何事もなければ次のMainline versionである1.25.0がリリースされたタイミングで使えるようになるはずです。 検索するとnginxでHTTP/3を使う方法を解説しているサイトがいくつかヒットしますが、実はmergeするちょっと前くらいから非互換な変更をいくつも入れていたので、そのままだと動かないはずです。なので簡単に使い方を解説しておきます。 なお分かっていると思いますが、こちらの記事は記事執筆時点(2023/05/20)の内容です。 OpenSSLの代わりを選ぶ HTTP/3を使うには自分でbuildする必要があります。いずれpackageが配布されるだろうと思っている人がいるかもしれませんが、nginxのHTTP/3対応はBoringSSLのAPIで対応されています。OpenS
こんにちは。最近、ピストのチェーンを 和泉チエン TOUGH GUARD に替えて、ご機嫌な原口です。 ホスティング事業部の MRE(Messaging Reliability Engineering *ペパボの造語です)というチームで、 SRE ような取り組みを、DNS やメールなどのメッセージングサービスに対して実施しています。 今回は、弊社のホスティングサービスで提供しているメールシステムについてご紹介いたします。 メールシステム構成 弊社のホスティングサービスで提供しているメールシステムは、運用効率化やメールサーバー リプレイス時のダウンタイム削減のため、リバースプロキシを導入しています。 このリバースプロキシについては、過去、dovecot や Courier-IMAP などを利用していましたが、 現在は Nginx に変更しています。メールシステムで Nginx を利用している
F5、NGINXの開発チームをロシア国外へ移転させたことを報告。開発を立て直しリリースサイクルも元通りに NGINX(エンジンエックス)はオープンソースで開発されているWebサーバとしてもっとも人気のあるソフトウェアの1つです。その開発者であるIgor Sysoev(イーゴリ・シソエフ)氏がロシアの首都モスクワに住んでいたことなどにより、NGINXの開発はロシアの首都モスクワを中心に行われていました。 そのロシアは現在、ウクライナへの武力侵攻に反対する西側諸国による厳しい経済制裁下にあり、多くのIT企業もロシアにおける活動を停止しています。 2019年にNGINX社を買収し現在NGINXの開発元となっているF5も、ロシアにおける営業活動とNGINXオープンソースプロジェクトへの貢献を停止したことを、3月15日付けのブログ「Standing Firm in Support of the Pe
概要 MongoDBでCPU使用率やロードアベレージが高くないのに処理が詰まっている現象が起きました。 その時間にbatchが動いていてアクセスが急に増えることが原因と言うのは分かっているのですが、負荷的には十分余裕があり不思議な状態でした。 そこでdstatで見るポイント - Carpe Diemでも述べたように、負荷の状態から判断する基準があります。 ロードアベレージを確認する 1が高ければCPU、ディスクI/O、メモリにボトルネックがある 1が低ければTCPコネクションにボトルネックがある 今回の現象から判断するに、TCPコネクションに原因がありそうです。 原因調査 Too many open filesは出ているか ファイルディスクリプタが足りない場合はコネクション数が足りずに処理が詰まってしまいます。 そしてその場合Too many open filesというエラーが出ます。 し
「あ、アクセスログに記録されるIPアドレスを匿名化したいな......」と思うこと、ありますよね。私は昨日から思っています。ちょっと探してみました。 見つかったアプローチ まず見つかったのが、GitHub - masonicboom/ipscrub: IP address anonymizer module for nginx という nginx のサードパーティモジュール。IPアドレスのハッシュ化をしてくれる様子。 github.com そしてもう一つが↓のStackOverflowの投稿。 stackoverflow.com この投稿でベストアンサーになっているものが、「map ディレクティブを使って、IPアドレスの末尾を強制的に 0 に置き換える」というもの。 map $remote_addr $ip_anonym1 { default 0.0.0; "~(?P<ip>(\d+)\.
「あ、EUからのアクセスを拒否したいな......」と思うこと、ありますよね。私も今日、そう思いました。 私は趣味と実益を兼ねて(いるつもり)、いくつかのしょうもないWebサービスを個人で運用してるのですが、そこに対するEUからのアクセスを遮断したいと思い、それを nginx で対応してみたので、そのメモです。 手順 基本的にはこちら↓の知見の固まりを参考文献としています。 inaba-serverdesign.jp EU加盟国は、外務省のページ(EU加盟国と地図 第5次拡大|外務省)によると以下の28カ国。 アイルランド イタリア 英国 エストニア オーストリア オランダ キプロス ギリシャ クロアチア スウェーデン スペイン スロバキア スロベニア チェコ デンマーク ドイツ(加盟時西ドイツ) ハンガリー フィンランド フランス ブルガリア ベルギー ポーランド ポルトガル マルタ ラ
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A New Ruby Application Server: NGINX Unit 原文公開日: 2018/03/28 著者: Nate Berkopec (@nateberkopec): Railsのパフォーマンスコンサルタントです。 主著: The Complete Guide to Rails Performance 参考に、NGINX Unitの動画を貼っておきます。 画像は元記事からの引用です。 概要: NGINX inc.は同社の新しい複数言語対応アプリサーバーであるNGINX UnitでRubyのサポートを開始しました。NGINX UnitはRubyアプリサーバーにどんな意味をもたらすのでしょうか?NGINX Unitは注目すべき製品なのでしょうか?(2057文字、10分) Rubyistのための新しいアプリサーバー
みなさんにも、さまざまな過去の経緯からくる微妙挙動を満載した外部ユーザ向けのHTTPサーバをリプレイスしたりするとき、実際にガツンとやっちまう前にちょっとリクエストを分岐して挙動と性能を確認したい、と思うことがあると思います。考えるだけでつらい気分になってくるやつ。でもやったほうが100倍マシなやつ。 どうしよっかなとちょっと考えたところ、少し前にこんな話があったのを思い出すはずですね*1。 asnokaze.hatenablog.com とはいえヨッシャ使うぞといきなりぶちこむこともできないので、まずいくつか試してみることにする。 準備 前提としては以下のように、元のアプリケーションと同じにホストにリバースプロキシが立っており、そこのnginxで http_mirror_module を使う、という想定*2。ミラー先はどこか適当なアプリケーションサーバ(あるいはロードバランサ)で、元アプ
Nginx, Inc.のMicroservices Reference Architecture(MRA)についてのドキュメントでProxyモデル、Router Meshモデル、Fabricモデルという3つのネットワーキングモデルが解説されている。 GoFのデザインパターン然り、名前が付いている、というのは重要なことだ。本項ではこの3モデルについて紹介する。 1. Proxyモデル Proxyモデルはマイクロサービスアプリケーションのフロント側にリバースプロキシクラスターを配置する。 出典元: MRA Part 2 – Proxy Model Proxyモデルは比較的単純であり、API Gateway、初期のマイクロサービス、もしくは、複雑なレガシーモノリシックアプリケーションを変換する際のターゲットとして適している。特に大規模なマイクロサービスやトラフィックについての負荷分散に適している
■ 概要 ・Webサーバのデファクトスタンダードである Apache ・C10K問題を解決するために開発された Nginx どっちの方がDoS攻撃(F5攻撃)に強いか、検証してみました。 ■ F5攻撃とは F5攻撃とは、ブラウザの再読み込みを何度も繰り返すことにより、大量のリクエストをサーバに送信し、サイトをダウンさせるDoS攻撃の1つです。 ■ 検証環境 ◆Apache HTTP Server 2.4.6(prefork MPM) ⇒ マルチプロセス型 ◆Apache HTTP Server 2.4.6(worker MPM) ⇒ マルチプロセスとマルチスレッドのハイブリッド型 ◆Apache HTTP Server 2.4.6(event MPM) ⇒ イベント駆動型(Apache2.4 から導入) ◆Nginx 1.12.0 ⇒ イベント駆動型 ※OSは、CentOS 7.3。 ※A
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました HTTPサーバとしてnginxを使っているケースは多いかと思います。しかし設定に関する情報はまだまだ多くはなく、動くように設定はしても、それがベストなのかどうか判断できない方も多いのではないでしょうか。 そんな方にお勧めなのがGixyです。nginxの設定ファイルを解析して改善案を提示してくれます。 Gixyの使い方 Gixyのインストールは pip でできます。 pip install gixy 後はnginxの設定ファイルを指定するだけです。 $ gixy /path/to/nginx.conf ==================== Results =================== Problem: [host_spoofing] The proxied Host h
NaClの田中です。 Amazon S3に格納したファイルを、X-Sendfileを使って配信する仕組みを構築しました。この記事ではその実現方法を紹介します。 X-Sendfileとは? X-Sendfileとは、NGINXのドキュメントによると「認証、ロギングなどをバックエンドで処理した後、内部リダイレクトされた場所からエンドユーザにコンテンツを配信するようにWebサーバが処理することで、バックエンドを解放して他の要求を処理させる仕組み」だそうです。Webサーバにコンテンツ配信をさせ、バックエンドのスループットを向上させるための機能、ということですね。 詳しい利用方法についてはドキュメントを参照ください。 mod_xsendfile for Apache2/Apache2.2 X-Accel | NGINX AmazonS3上のファイル配信 さて本題です。今回やりたかったことはAmazo
nginxのステータスコード444 nginx独自のステータスコード444は、レスポンスヘッダを返さずにコネクションを切断できる。レスポンスヘッダを返さないので、ステータスコード444をクライアントが受け取ることはない。 http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return The non-standard code 444 closes a connection without sending a response header. DoS攻撃など、特定条件のアクセスをBANするときに、なるべく計算機リソース消費を抑えたいときに使えるはず。 403を返すときなどと比べて、レスポンス送信のためのCPUコストを節約 403を返すときなどと比べて、レスポンスヘッダ分のネットワーク帯域を節約 HTTP Keepalive
最近 Fluentd の通信プロトコルまわりをアップデートするためにあれこれいじっている*1んだけど、これはおおむね fluent-plugin-secure-forward がサポートしていた内容を Fluentd 組込みの forward plugin でもサポートしますよ、というものになる。 んで問題なのが secure-forward は SSL/TLS での接続のみしかサポートしてなかったんだけど forward では生の TCP で通信する*2ので、本当に secure-forward と forward それぞれの実装間で互換性が保たれているのか、直接的には確認する手段がない、ということになってしまう。 TCP server の SSL/TLS 化 一方世の中には SSL/TLS ターミネータという機能があって、たとえばロードバランサなんかがこの機能を持っている。何をやるかと
// https://github.com/nginx/nginx/blob/9842cff/src/http/ngx_http_request.h#L120-L126 /* * HTTP does not define the code for the case when a client closed * the connection while we are processing its request so we introduce * own code to log such situation when a client has closed the connection * before we even try to send the HTTP header to it */ #define NGX_HTTP_CLIENT_CLOSED_REQUEST 499 HTTP標準で
安全なウェブサイトを公開するため、無料で利用可能な Let's Encrypt の証明書を使う方法をご紹介します。Let's Encrypt の背景とSSL証明書の自動発行をはじめ、CentOS 7 上の Nginx ウェブサーバを SSL に対応する方法、そして、証明書を自動更新する方法を見ていきましょう(所要時間10~20分)。 なお、Let's Encrypt については既に中津川さんの記事「すべてのWebサイトの暗号化を目指すLet's Encryptを試す」で取り上げられていますが、今回は新しいクライアント certbot-auto を使う方法や、証明書の自動更新の仕方をとりあげます。 こんにちは!こんにちは! みなさん、はじめまして。さくらインターネットの前佛雅人(ぜんぶつまさひと)です。さくらのナレッジに何か書け(業務命令)ということで、皆さんがサーバをより活用できるよう、ナ
こんにちは。吉川 ( @rrreeeyyy ) です。今期オススメのアニメはリゼロです。 Nginx は設定ファイルの記述力も高い、大変便利な Web サーバです。 便利な反面、設定ファイルの複雑化や、設定に依っては意図しない挙動を引き起こしてしまうこともあります。 そこで本稿では docker 並びに infrataster を使用し、 Nginx の挙動をテストすることによって、安全に Nginx の設定を記述する方法について紹介します。 テスト対象の Nginx の仕様 今回は例として、次のような仕様の Nginx のテストについて考えます。 ネットワーク帯は 10.0.0.0/16 を使用している Nginx の前段として L7 ロードバランサが存在している L7 ロードバランサが https を終端している Nginx 自体は 80 番ポートと 8080 番ポートにて待ち受けてい
nginxのリクエスト数を制限する、ngx_http_limit_req_moduleの動作を勝手に勘違いして勝手にハマったというお話です。 大したことではないのですがdockerでその動作を再現した例はこちらです。 github.com 何にハマったのかというと、”5r/sが5req per secではない”のです。 ”2r/sも2req per secではない”のです。でも”1r/sは1req per secです”。なぞなぞでしょうか。 ...dockerのコンテナを動かしてshellを実行すると次のようなエラーログとアクセスログが出力されます。 nginx_1 | 2016/06/13 15:35:35 [error] 8#8: *18 limiting requests, excess: 0.995 by zone "five", client: 192.168.99.1, ser
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く