ホームページ データベース Redis Nginx+Tomcat+Redis を介して永続セッションを実装する方法

Nginx+Tomcat+Redis を介して永続セッションを実装する方法

May 28, 2023 am 08:37 AM
redis nginx tomcat

デプロイ環境

centos7
nginx1.10.2
tomcat7.0
redis3.2.3
mariadb 5.5.44

必要なパッケージ

commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager- 2.0.0.jar

ソロブログ

Nginx+Tomcat+Redis を介して永続セッションを実装する方法

##1. nginx サーバー構成

インストール前の準備

ntpdate 172.18.0.1

iptables -f

##nginxのインストール

yum install nginx


構成ファイルを変更します


アップストリーム tomcatservers: バックエンド サーバー グループを作成し、http 内に

location を追加します。URL に一致し、追加します。サーバー内の

注: 省略記号はその他のデフォルトのパラメータです。特別な必要がない場合は、デフォルトの

vim /etc/nginx/nginx.conf
http {
...
upstream tomcatservers {
 server 172.18.68.21:8080;
 server 172.18.68.22:8080;
 }
...
server {
...
 location / {
  proxy_pass http://tomcatservers;
  }
...
}
}
systemctl start nginx
ログイン後にコピー

ポートを確認してください


サーバーを起動するときに、ポート 80 が正常にリッスンしているかどうかを確認してください。

ss -ntl


2. Tomcat サーバーの設定

#2 つの Tomcat サーバー構成はまったく同じです。両方のホストで次の手順を繰り返します。

インストール前の準備

ntpdate 172.18.0.1iptables -f



インストールtomcat

yum install tomcat


solo をデプロイ

.war パッケージが webapps ディレクトリにコピーされる 再起動後tomcat、tomcat はファイルを自動的に解凍します

cp solo-2.4.1.war /usr/share/tomcat/webapps/
systemctl restart tomcat
ログイン後にコピー

solo

serverhost をフロントエンド ロード バランシングのドメイン名または IP として構成します (静的と表示される場合)デプロイメント完了後 リソースをロードできない場合は、通常、何か問題が発生しています。

cd /usr/share/tomcat/webapps/solo-2.4/web-inf/classes
vim latke.properties
 #### server ####
 # 配置协议
 serverscheme=http
 # 配置客户端访问站点时的域名或ip,也就是前端nginx的域名
 serverhost=www.shuaiguoxia.com
 # 使用的端口
 serverport=80
ログイン後にコピー

mysql に接続するための Solo の設定

h2 ランタイム パーツは、デフォルトで Solo によって使用されます。手動でコメントアウトした後、mysql ランタイム パーツのコメントを解除します。 。

mysql のユーザー名とパスワードを設定し、172.18.68.41 を mysql (main) の IP アドレスに変更します。

#### h2 runtime ####
#runtimedatabase=h2
#jdbc.username=root
#jdbc.password=
#jdbc.driver=org.h2.driver
#jdbc.url=jdbc:h2:~/solo_h2/db
#jdbc.pool=h2
#
#### mysql runtime ####
runtimedatabase=mysql
jdbc.username=root      # 用户名
jdbc.password=123456     # 密码
jdbc.driver=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://172.18.68.41:3306/solo?useunicode=yes&characterencoding=utf8
jdbc.pool=druid
ログイン後にコピー

Tomcat 接続リードの構成

Tomcat 接続リードには 3 つのソフトウェア パッケージが必要です:

commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager-2.0.0.jar
ログイン後にコピー

ダウンロード アドレス

コピー必要な jar パッケージを /usr/share/tomcat/lib/

cp commons-pool2-2.2.jar /usr/share/tomcat/lib/
cp jedis-2.5.2.jar
cp tomcat-redis-session-manager-2.0.0.jar
ログイン後にコピー

にコピーします。contest.xml ファイルを変更し、次の 2 行をファイルに追加します。

ip は redisip アドレス、port は redis がリッスンするポートです

vim /etc/tomcat/context.xml
#
 <valve classname="com.orangefunction.tomcat.redissessions.redissessionhandlervalve" />
 <manager classname="com.orangefunction.tomcat.redissessions.redissessionmanager" 
 host="172.18.68.31" 
 port="6379" 
 database="0" 
 maxinactiveinterval="60" />
ログイン後にコピー

Restart tomcat

systemctl restart tomcat


3. Redis サーバーの構成

Redis サーバーは 2 つあり、マスターとスレーブが 1 つずつあります。設定ファイルが異なるだけで、他のプロセスは同じです。

#インストール前の準備

ntpdate 172.18.0.1
iptables -f
ログイン後にコピー

redis のインストール

yum install redis

#Redis マスター ノードの構成

マスター ノードは IP、リスニング ポート、接続パスワードのみを構成します

vim /etc/redis.conf
bind 0.0.0.0       # 监听所有ip
port 6379        # 设定监听的端口
requirepass 123456      # 设定连接的密码
ログイン後にコピー

redis スレーブ ノードの構成

スレーブ ノードを読み取り専用として設定します

bind 0.0.0.0       # 监听所有ip
slaveof 172.18.68.31 6379    # 设定主节点的ip+端口
masterauth 123456      # 主节点的连接密码
slave-read-only yes      # 从节点为只读
ログイン後にコピー

マスター/スレーブ構成が成功したことを確認します

shell > redis-cli -h 172.18.68.32  # 连接从服务器redis
127.0.0.1:6379> info replication   # 查看主从复制状态信息
# replication
role:slave
master_host:172.18.68.31     # 主节点ip
master_port:6379       # 主节点的端口
master_link_status:up     # up为主从同步正常
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:1420
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
ログイン後にコピー

4. Mysqlサーバー構成

2 つの mysql サーバー (マスターとスレーブが 1 つ) があります。設定ファイルが異なるだけで、他のプロセスは同じです。

インストール前の準備

ntpdate 172.18.0.1iptables -f


mariadb のインストール

yum install mariadb
#
#
#运行初始化脚本对mysql进行
cd /usr/local/mysql/bin
mysql_secure_installation   #mysql初始化脚本,以下为每一项的翻译
 先回车
 是否设置root密码
 输入密码
 确认密码
 是否设置匿名用户
 是否允许root远程登录
 删除test数据库
 现在是否生效
ログイン後にコピー

mysql マスター サーバーの設定

マスターとスレーブの同期ではバイナリ ログを有効にする必要があり、設定ファイルの変更には 2 つのポイントがあります。

1.server-id は競合してはなりません


2.メイン サーバー上で承認されたユーザーを作成し、そのユーザーにレプリケーションのアクセス許可を与えます。

shell > vim /etc/my.cnf
server-id=1           #节点id
log-bin=mysql-bin         #指定二进制日志前缀
relay-log=mysql-relay-bin       #指定relaylog日志前缀
replicate-wild-ignore-table=mysql.%     #排除要复制的表
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
ログイン後にコピー

スレーブ サーバーがメイン サーバーのデータをコピーする権限を持つように、メイン サーバーの行に許可されたユーザーを作成します。許可されたユーザーは最小特権の法則に適合する必要があり、接続を許可する IP アドレスが正確であればあるほど良いです。

musql > grant replication slave on *.* to 
 &#39;slave_user&#39;@&#39;10.0.0.67&#39; identified by &#39;123456&#39;;
ログイン後にコピー

Mysql スレーブ サーバー構成

Mysql マスター/スレーブ構成はサーバー ID が異なるだけです

shell > vim /etc/my.cnf
server-id=2           #节点id
log-bin=mysql-bin         #指定二进制日志前缀
relay-log=mysql-relay-bin       #指定relaylog日志前缀
replicate-wild-ignore-table=mysql.%     #排除要复制的表
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
ログイン後にコピー

スレーブに接続するときサーバー Mysql コマンド ライン設定では、マスター ノードの IP、ユーザー名、パスワードを設定します。最も重要なものは、master_log_file と master_log_pos です。これら 2 つの項目は、マスター ノードでの

クエリの結果であり、マスター ノードでのクエリ結果と同じである必要があります。

# 在mysql主服务器中查询结果
mariadb [(none)]> show master status\g;
*************************** 1. row ***************************
  file: master-log.000003
  position: 18893845
  binlog_do_db: 
  binlog_ignore_db:
ログイン後にコピー

mysql スレーブ サーバーの構成

mysql > change master to 
master_host=&#39;10.0.0.66&#39;,
master_user=&#39;slave_user&#39;,
master_password=&#39;123456&#39;,
master_log_file=&#39;mysql-bin.000001&#39;,
master_log_pos=106;`
ログイン後にコピー

アクティブな同期状況の表示

マスター/スレーブの表示スレーブサーバーの同期状況。最後の 2 行の「yes」は、マスターとスレーブの同期が成功したことを示します。テーブル、ライブラリ、さらにはデータをクエリすることで、マスターとスレーブの同期ステータスをクエリして検証することもできます。

mariadb [(none)]> show slave status\g;
*************************** 1. row ***************************
   slave_io_state: waiting for master to send event
    master_host: 172.18.68.41
    master_user: slave-user
    master_port: 3306
   connect_retry: 60
   master_log_file: master-log.000002
  read_master_log_pos: 245
   relay_log_file: mysql-relay-bin.000002
   relay_log_pos: 530
 relay_master_log_file: master-log.000002
   slave_io_running: yes
  slave_sql_running: yes
ログイン後にコピー

デプロイ完了

ブラウザから 172.18.68.11/solo-2.4 にアクセスすると、デプロイされた Solo ブログにアクセスできます。管理者アカウントのパスワードであるユーザーパスワードを登録します。


nginx がどのようにスケジュールされているかに関係なく、Tomcat はクライアントのセッションを Redis に保存できます。 Windwos の Redis 管理ソフトウェアを使用すると、Redis マスター データベースとスレーブ データベースの両方にセッション情報があることを確認できます。

Nginx+Tomcat+Redis を介して永続セッションを実装する方法


以上がNginx+Tomcat+Redis を介して永続セッションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

nginxサーバーを開始する方法 nginxサーバーを開始する方法 Apr 14, 2025 pm 12:27 PM

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Centos RedisでLUAスクリプト実行時間を構成する方法 Centos RedisでLUAスクリプト実行時間を構成する方法 Apr 14, 2025 pm 02:12 PM

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

Centos7にRedisをインストールする方法 Centos7にRedisをインストールする方法 Apr 14, 2025 pm 08:21 PM

公式Redisソースからソースコードパッケージをダウンロードして、コンパイルしてインストールして、最新の安定したバージョンを確保し、パーソナライズされた方法でカスタマイズできます。特定の手順は次のとおりです。ソフトウェアパッケージリストを更新してRedisディレクトリを作成するRedisソースコードパッケージをダウンロードしてソースコードパッケージを解凍し、インストール構成をコンパイルし、Redis構成を変更してRedisの起動ステータスを確認します

nginx apacheを実行する方法 nginx apacheを実行する方法 Apr 14, 2025 pm 12:33 PM

nginxをApacheを実行するには、次のことが必要です。1。nginxとapacheをインストールします。 2。nginxエージェントを構成します。 3。nginxとapacheを起動します。 4.構成をテストして、ドメイン名にアクセスした後にApacheコンテンツを確認できることを確認します。さらに、ポート番号マッチング、仮想ホスト構成、SSL/TLS設定など、他の問題に注意を払う必要があります。

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

See all articles