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 投稿