0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL上Dockerのリバースプロキシがつながらなくなった件

Posted at

サマリ

本記事では、WSL2 + Docker Desktop環境で発生したリバースプロキシの接続問題について解説します。NginxコンテナとWebアプリケーションコンテナ間の通信が突然502エラーを返すようになった問題の原因と解決方法を紹介します。特に、Windows 11のWSL2ミラーモードネットワーク機能が関係する問題について詳しく説明します。

本文

問題の概要

WSL2 + DockerDesktop環境で開発中、突然リバースプロキシが502エラーを返すようになり、バックエンドへの接続ができなくなりました。この問題は前日まで正常に動作していた環境で発生しました。

環境構成

  • Windows 11 23H2
  • Docker Desktop v4.41.2(問題発生時)
  • WSL2上で動作するDockerコンテナ
    • リバースプロキシ: Nginxコンテナ
    • バックエンド: Webアプリケーションコンテナ

問題の詳細

以下のような状況が確認されました:

  1. WebアプリケーションコンテナからNginxコンテナへのcurl接続は正常
  2. Nginxコンテナのアクセスログには接続記録が出力される
  3. WSLやWindowsからブラウザでアクセスすると502エラー。このときNginxコンテナのコンソールログに変化なし

原因

問題の原因は、WSLのネットワーク設定に関連していました。具体的には、Windows 11 22H2で導入されたWSL2ミラーモードの設定が関係していました。

解決手順

  1. Windowsのユーザーディレクトリ(C:\Users[ユーザー名])に.wslconfigファイルを作成
.wslconfig
[wsl2]
networkingMode=mirrored
  1. WSLの再起動
wsl --shutdown
wsl

結論

この問題は、Windows 11のWSL2ミラーモードネットワーク機能の設定が原因で発生しました。
直近のアップデート作業から考えると、Docker Desktop v4.41.2へのアップデートやWindows Updateがトリガーとなった可能性がありますが、具体的な因果関係は不明です。

Docker Desktop v4.41.2にはネットワーク関連の既知の問題が報告されていましたが、v4.40へのダウングレードでは問題は解決しませんでした。最終的にはWSL2のネットワーク設定を変更することで解決できました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?