NginxのLocationマッチング競合による大規模な404エラーの調査と解決

運用中の商用環境において、バックエンドサービスは正常に稼働しているにもかかわらず、フロントエンドからのリクエストが一部404(Not Found)エラーになるという問題が発生しました。本記事では、この問題を特定し、Nginxのデバッグモードを活用して解決に至ったプロセスを技術的に解説します。 問題の発生と初期診断 まず、バックエンドのサービスプロセスとポートが ...

11月1日 07:07 投稿

Nginx Web Server Deployment and Configuration Guide

Nginx 概観 高機能なウェブサーバーおよびリバースプロキシソフトウェアとして知られる Nginx は、HTTP プロトコルを中心に、IMAP、POP3、SMTP などのメールプロトコルもサポートしています。低リソース消費による高パフォーマンスが特徴で、大規模トラフィックへの対応に適しています。 インストール手順 公式ウェブサイトから配布されているパッケージまたはバイナリを ...

10月16日 01:26 投稿

PHP処理系および関連拡張機能における脆弱性の検証と実行手法

CVE-2019-11043:NginxとPHP-FPM間のパス解析問題 本脆弱性は、Nginxのfastcgi_split_path_infoディレクティブ設定と特定のPHPバージョン(5.6~7.x系)が組み合わさった際に発生します。Path Infoの解析過程でバッファ処理の不備が生じ、PHP-FPMの環境変数を改変することで任意コード実行が可能となります。 検証環境はNginx+PHP-FPM(PHP 7.1)で構成されています。攻撃 ...

10月11日 05:08 投稿

ソースコードからLNMP環境を構築する方法

必要なソフトウェアパッケージとダウンロードリンク Nginx - ウェブサーバーコンポーネント MySQL - データベースコンポーネント PHP - サーバーサイドスクリプト言語 PCRE - Nginxの正規表現サポート用ライブラリ Boost - MySQL 5.7以降に必要なライブラリ 本記事では以下のバージョンを使用します: Boost 1.59.0 MySQL 5.7.19 Nginx 1.14.1 PCRE 8.41 PHP 7.1.24 ...

10月2日 09:00 投稿

GitLabのNginx設定におけるHostヘッダーとserver_nameの連携メカニズム

背景 前回の記事では、GitLabのexternal_url構成要素の役割を検討し、組み込みNginxのserver_name機能の分析を開始しました。Hostフィールドの重要性について言及したため、引き続き詳細を検証します。 Nginx構成要素の検証 前回の記事で述べた通り、HostはHTTP/1.1プロトコルにおいて必須のリクエストヘッダーフィールドであり、サーバーに対してクライアントがアクセス ...

9月30日 02:58 投稿

Djangoアプリケーションの負荷分散をNginxとuWSGIで実装する方法

システム構成 Nginxロードバランサー: 192.168.110.128 uWSGIアプリケーションサーバー: 192.168.110.129, 192.168.110.130, 192.168.110.131 環境設定 Django環境の構築(全uWSGIサーバー) # システムパッケージのインストール yum install -y gcc-c++ vim python3 python3-pip # 仮想環境ツールのインストール pip3 install virtualenv virtualenvwrapper # 仮想環境 ...

9月26日 09:32 投稿

Dockerによるシステムデプロイの基礎

DockerとJenkinsを活用した自動デプロイ フロントエンド開発者として、デプロイの仕組みは学習が不足しているものの、実務では自社システムの構築・公開に必要な手順を経験しています。以下は個人的な運用ノウハウのまとめであり、参考程度にご活用ください。 本環境では Jenkins + Docker を用いた自動ビルド・リポジトリへのプッシュを実施しています。特にJenkinsの役 ...

9月18日 08:28 投稿

Logstashの動的テンプレートマッピングでNginxのJSON形式ログを収集する

LogstashからESへ送信されたデータは、自動的に「5シャード・5レプリカ」のインデックスとして作成され、すべてのフィールドがtext型にマッピングされます。この状態では、基本的にデータ分析を行うことはできません。 そこで、Logstashのデータをあらかじめ定義した形式でESに格納する必要があります。このときに利用するのがESのテンプレート機能です。ESではカスタムテ ...

9月8日 14:28 投稿

gRPC通信におけるmTLS(相互TLS)認証の実装ガイド

証明書の発行と設定 gRPCサーバー(想定ドメイン: grpc.local.net)とクライアント間の通信を相互TLS(mTLS)で保護する手順を解説します。まず、認証局(CA)、サーバー用、クライアント用の証明書チェーンを構築します。 1. ルートCA証明書の生成 以下のOpenSSLコマンドを使用して、RSA 4096ビットの秘密鍵と自己署名ルート証明書を作成します。実運用ではパスフレーズ ...

9月8日 13:53 投稿

LNMP環境にDiscuzフォーラムをインストールする方法

LNMP環境の構築 LNMP環境の構築手順については、以下の記事を参照してください。 ※本章では既にLNMP環境が構築済みであることを前提とします。 Discuzフォーラムシステムの導入 アーカイブのダウンロードと展開 まず、Discuzフォーラムシステムのアーカイブをダウンロードします。公式ウェブサイトから最新バージョンを取得してください。 [root@webserver01 ~]# ls ana ...

9月3日 05:04 投稿