デプロイ環境
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
ソロブログ
##1. nginx サーバー構成
インストール前の準備
ntpdate 172.18.0.1iptables -f
yum install nginx
アップストリーム tomcatservers: バックエンド サーバー グループを作成し、http 内に
注: 省略記号はその他のデフォルトのパラメータです。特別な必要がない場合は、デフォルトの
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 サーバー構成はまったく同じです。両方のホストで次の手順を繰り返します。
インストール前の準備
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
ダウンロード アドレス
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
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 # 设定连接的密码
スレーブ ノードを読み取り専用として設定します
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 つのポイントがあります。
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.%
musql > grant replication slave on *.* to 'slave_user'@'10.0.0.67' identified by '123456';
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主服务器中查询结果 mariadb [(none)]> show master status\g; *************************** 1. row *************************** file: master-log.000003 position: 18893845 binlog_do_db: binlog_ignore_db:
mysql > change master to master_host='10.0.0.66', master_user='slave_user', master_password='123456', master_log_file='mysql-bin.000001', 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
以上がNginx+Tomcat+Redis を介して永続セッションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。