ホームページ バックエンド開発 PHPチュートリアル nginx での proxy_pass から tomcat へのセッション損失の問題を解決する

nginx での proxy_pass から tomcat へのセッション損失の問題を解決する

Aug 08, 2016 am 09:21 AM
header proxy session tomcat

はじめに

私は常に nginx1.5.7 を Web サーバーおよびプロキシ サーバーとして使用してきました。1 つのアプリケーションは常に 1 つの Tomcat (1 つのポート、1 つのドメイン名のみ) に対応します。
今日、サーバー上に Tomcat を統合し、5 つのアプリケーションが 1 つの Tomcat を共有しました。
最初に発生する問題は、ユーザーがバックグラウンドに入るのを待機しているときに例外が発生し、ログインしているユーザー情報が見つからないことです。
デバッグの結果、リクエストが複数になり、セッションが不整合になっていることがわかり、別のブラウザがアクセスしているように感じられたため、セッションが失われたに違いないと結論付けました。

原因

慎重に分析した結果、問題は Nginx の構成にあるという結論に達しました。

<code>server_name  www<span>.</span>weixin4j<span>.</span>org;
charset utf<span>-</span><span>8</span>;
root   /opt/apache<span>-tomcat</span><span>-</span><span>7.0</span><span>.53</span>/webapps/weixin4j<span>/</span>;
location <span>/</span> {
    proxy_pass         http:<span>//127.0.0.1:8180/weixin4j/;</span>
    proxy_set_header   Host             <span>$host</span>;
    proxy_set_header   X<span>-Real</span><span>-IP</span><span>$remote_addr</span>;
    proxy_set_header   X<span>-Forwarded</span><span>-For</span><span>$proxy_add_x_forwarded_for</span>;
}</code>
ログイン後にコピー

この設定により、Cookie の保存場所が「/」に基づいていないため、2 回目の訪問時にセッションが再作成され、セッション内の情報が失われます。

解決策

Cookieの保存パスを変更してください

<code>server_name  www<span>.</span>weixin4j<span>.</span>org;
charset utf<span>-</span><span>8</span>;
root   /opt/apache<span>-tomcat</span><span>-</span><span>7.0</span><span>.53</span>/webapps/weixin4j<span>/</span>;
location <span>/</span> {
    proxy_pass         http:<span>//127.0.0.1:8180/weixin4j/;</span>
    proxy_set_header   Host             <span>$host</span>;
    proxy_set_header   X<span>-Real</span><span>-IP</span><span>$remote_addr</span>;
    proxy_set_header   X<span>-Forwarded</span><span>-For</span><span>$proxy_add_x_forwarded_for</span>;
    add_header From www<span>.</span>weixin4j<span>.</span>org;
    proxy_cookie_path /weixin4j<span>/</span><span>/</span>;
    proxy_set_header Cookie <span>$http_cookie</span>;
}</code>
ログイン後にコピー

サービスを再起動してテストしてください!
合格!

上記は、nginx の proxy_pass から tomcat へのセッション損失の問題を解決する方法を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tomcat に jar プロジェクトをデプロイする方法 Tomcat に jar プロジェクトをデプロイする方法 Apr 21, 2024 am 07:27 AM

JAR プロジェクトを Tomcat にデプロイするには、次の手順に従います。 Tomcat をダウンロードして解凍します。 server.xml ファイルを構成し、ポートとプロジェクトのデプロイメント・パスを設定します。 JAR ファイルを指定されたデプロイメント パスにコピーします。 Tomcatを起動します。指定された URL を使用して、デプロイされたプロジェクトにアクセスします。

Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Apr 21, 2024 am 07:22 AM

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

Tomcatのインストールディレクトリはどこにありますか? Tomcatのインストールディレクトリはどこにありますか? Apr 21, 2024 am 07:48 AM

Tomcat インストール ディレクトリ: デフォルト パス: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 カスタム パス: インストール中に指定できます。インストール ディレクトリを見つけます。whereis またはlocateコマンドを使用します。

Tomcat で複数のプロジェクトをデプロイする方法 Tomcat で複数のプロジェクトをデプロイする方法 Apr 21, 2024 am 09:33 AM

Tomcat を介して複数のプロジェクトをデプロイするには、プロジェクトごとに webapp ディレクトリを作成してから、次の操作を行う必要があります。 自動デプロイ: webapp ディレクトリを Tomcat の webapps ディレクトリに配置します。手動デプロイメント: Tomcat のマネージャー アプリケーションにプロジェクトを手動でデプロイします。プロジェクトがデプロイされると、そのデプロイメント名 (例: http://localhost:8080/project1) でアクセスできるようになります。

Tomcatでの同時接続数を確認する方法 Tomcatでの同時接続数を確認する方法 Apr 21, 2024 am 08:12 AM

Tomcat の同時接続数を確認する方法: Tomcat Manager ページ (http://localhost:8080/manager/html) にアクセスし、ユーザー名とパスワードを入力します。左側のナビゲーション バーで [ステータス] -> [セッション] をクリックすると、ページの上部に同時接続数が表示されます。

Tomcat Web サイトのルート ディレクトリはどこですか? Tomcat Web サイトのルート ディレクトリはどこですか? Apr 21, 2024 am 09:27 AM

Tomcat Web サイトのルート ディレクトリは Tomcat の webapps サブディレクトリにあり、Web アプリケーション ファイル、静的リソース、および WEB-INF ディレクトリを保存するために使用されます。これは、Tomcat 構成ファイルで docBase 属性を検索することで見つかります。

Tomcatのポート番号を確認する方法 Tomcatのポート番号を確認する方法 Apr 21, 2024 am 08:00 AM

Tomcat のポート番号は、server.xml ファイルの <Connector> 要素の port 属性を確認することで確認できます。 Tomcat 管理インターフェイス (http://localhost:8080/manager/html) にアクセスし、[ステータス] タブを表示します。コマンドラインから「catalina.sh version」を実行し、「Port:」行を確認します。

TomcatでHTMLとJSPを実行する方法 TomcatでHTMLとJSPを実行する方法 Apr 21, 2024 am 09:04 AM

Tomcat は HTML と JSP を実行できます。その方法は次のとおりです。HTML ファイルを Tomcat ディレクトリの対応するサブディレクトリにコピーし、ブラウザでアクセスします。 JSP ファイルを Tomcat ディレクトリの対応するサブディレクトリにコピーし、<%@ page %> ディレクティブを使用して Java コードを指定し、ブラウザでそのコードにアクセスします。

See all articles