tomcat集群和session共享
1.集群
- 生成發布包
- 項目右鍵export生成war包
- 再解壓一個tomcat
- 把war包放入第二個tomcat,wabapps中,設置埠號,根目錄conf的server.xml中
再修改第二個startup.bat增加兩行代碼
寫在最上方
SET JAVA_HOME=D:java //指定jdk安裝的路徑根路徑,不用進入bin文件夾中
SET CATALINA_HOME=D:apache-tomcat-7.0.67 //指定第二個tomcat根路徑
- 1
- 2
- 3
- 啟動nginx 根目錄下conf下的nginx.conf
server {
listen 80;
server_name localhost;//表示進入埠自動尋找localtion
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;//默認的localtion地址
index index.html index.htm;//這個地址下有哪些頁面可以訪問
//添加proxy_pass
proxy_pass http://server_list/;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 在當前conf文件中添加upstream
upstream server_list{
server localhost:8080;//添加所有的tomcat訪問地址
server localhost:8081;
}
- 1
- 2
- 3
- 4
示例如下:
http {
limit_conn_log_level error;
limit_conn_status 503;
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_conn_zone $server_name zone=perserver:10m;
limit_req_zone binary
r
emote
a
ddrzone=allips:100mrate=10r/s;其中
binaryremoteaddrzone=allips:100mrate=10r/s;其中binary_remote_addr有時需要根據自己已有的log_format變數配置進行替換
server {
…………………….
limit_conn one 100;
- 1
- 2
- 3
- 4
limit_conn perserver 1000;
limit_req zone=allips burst=5 nodelay;
………………….
- 1
- 2
- 3
- 4
}
}
參數解釋:
Zone=one或allips 表示設置了名為「one」或「allips」的存儲區,大小為10兆位元組
rate=10r/s 的意思是允許1秒鐘不超過10個請求
burst=5 表示最大延遲請求數量不大於5。 如果太過多的請求被限制延遲是不需要的 ,這時需要使用nodelay參數,伺服器會立刻返回503狀態碼。
limit_conn one 100表示最大並發連接數100
limit_conn perserver 1000表示該服務提供的總連接數不得超過1000,超過請求的會被拒絕
2.啟動nginx
- 解壓nginx壓縮包
- 命令行敲代碼
3.配置tomcat
多個Tomcat同步Session
分別修改tomcat的server.xml配置文件
- 為元素指定jvmRoute屬性名,名稱保持一致
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
- 1
- 釋放開元素注釋
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- 1
- 在項目project的web.xml中配置< distributable/>元素
nginx+tomcat+redis完成session共享
安裝redis、tomcat、nginx
session同步配置
下載jar包,放入到tomcat/lib目錄下
tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar
jedis-2.5.2.jar
commons-pool2-2.0.jar
修改tomcat中context.xml文件
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="10.10.49.20"
port="6379"
database="0"
maxInactiveInterval="60" />
</Context>
※Django自定義管理器
※一句話+一張圖就能說清楚Aprioir關聯規則演算法
TAG:程序員小新人學習 |