ホームページ  >  記事  >  バックエンド開発  >  セッション共有

セッション共有

WBOY
WBOYオリジナル
2016-07-30 13:30:091208ブラウズ
Tomcat の同時実行性のボトルネックの問題により、Tomcat を使用するほぼすべての Web アプリケーションにはセッションの非同期の問題があると言えます。 インターネットの情報をもとに、私も時間を見つけて実験してみました。 この記事に含まれるソフトウェアのダウンロードとインストールは、一つずつ読み飛ばす必要があると思います。 注: この記事では memcached と redis について口頭で議論するつもりはありません。すべてのネチズンが Google と Du Niang 自身に質問することを願っています。 (私の謙虚な意見では、ソフトウェアはソフトウェアとして多くの支持者を得ることができます。それぞれの利点があるはずです。重要なのは、実際のニーズに基づいて自分に合ったものを選択することです。) 一、nginx+tomcat+memcached (依存関係パッケージのダウンロード)

1.memcached 構成: (v1.4.13)

ノード 1 (192.168.159.131:11444)

ノード 2 (192.168) .159.131:11333)

2.tomcat設定

tomcat1 (192.168.159.128:8081)

tomcat2 (192.168.159.128:8082)

3.nginxは192.168にインストールされています。 159.131。

まず、セッションを memcached に保存するように Tomcat を設定します。 2 つの方法があります:

方法 1:server.xml で設定します。

ホスト ノードを見つけて、

 

方法 2: context.xml で構成します。

Context ノードを見つけて

を追加します。 次に、セッションが共有されたままであることをテストするように nginx を設定します。 upstream  xxy.com  {       server   192.168.159.128:8081 ;       server   192.168.159.128:8082 ; } log_format  www_xy_com  '$remote_addr - $remote_user [$time_local] $request '                '"$status" $body_bytes_sent "$http_referer"'                 '"$http_user_agent" "$http_x_forwarded_for"'; server {       listen  80;       server_name  xxy.com;       location / {                proxy_pass        http://xxy.com;                proxy_set_header   Host             $host;                proxy_set_header   X-Real-IP        $remote_addr;                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;       }       access_log  /data/base_files/logs/www.xy.log  www_xy_com; }

最後に、アプリケーションを 2 つの Tomcat に配置し、memcached、tomcat、nginx を順番に起動します。 nginx にアクセスすると、2 つの Tomcat のセッションが共有されたままであることがわかります。

2. nginx+tomcat+redis (依存関係パッケージのダウンロード)

1.redis 構成 (192.168.159.131:16300) (v2.8.3)

2.tomcat 構成

トムキャット1( 192.168.159.130:8081)

tomcat2 (192.168.159.130:8082)

3.nginx は 192.168.159.131 にインストールされます。

まず、セッションを Redis に保存するように Tomcat を設定します。 2 つのメソッドがあり、どちらも server.xml または context.xml で設定されます。違いは、memcached ではマネージャー タグを追加するだけでよいのに対し、redis では次のコンテンツを追加する必要があることです。 (注: バルブ タグは)

次に、テスト セッションを共有し続けるように nginx を設定します。

upstream  redis.xxy.com  {       server   192.168.159.130:8081;       server   192.168.159.130:8082; } log_format  www_xy_com  '$remote_addr - $remote_user [$time_local] $request '                '"$status" $body_bytes_sent "$http_referer"'                 '"$http_user_agent" "$http_x_forwarded_for"'; server {       listen  80;       server_name redis.xxy.com;        location / {                proxy_pass        http://redis.xxy.com;                proxy_set_header   Host             $host;                proxy_set_header   X-Real-IP        $remote_addr;                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;       }       access_log  /data/base_files/logs/redis.xxy.log  www_xy_com; }

最後に、アプリケーションを 2 つの Tomcat に配置し、redis、tomcat、nginx を順番に起動します。 nginx にアクセスすると、2 つの Tomcat のセッションが共有されたままであることがわかります。

上記の 記事 で、説明が必要な点が 1 つあります: Tomcat 設定の server.xml にマネージャーが配置されている場合、ホット デプロイメントに Maven を使用すると失敗します。したがって、context.xml に配置することをお勧めします。

以上、セッション共有についてその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

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