為客戶開拓的一個績效系統,回收了java web的開拓方法,利用了一些spring mvc, mybatis之類的框架。對比于oracle ebs的二次開拓,這種開拓越發機動,固然和ebs集成的時候碰著一些問題,可是最后也都辦理了。
在陳設的時候,客戶要求要能同事遭受一兩千人在線,相對付客戶公司的總人數(七八萬人),應該足夠了。ebs的二次都是直接陳設在oracle ebs的application server上面,之前也沒怎么存眷過措施的陳設。這次回收tomcat陳設,思量到單個tomcat的最大也就能遭受500閣下的在耳目數,這次回收了一個小的集群陳設,利用了5個tomcat,反向署理利用的nginx。
此刻措施根基不變,壓力測試也都能沒什么大的問題,趁著有時間,把陳設和設置都整理一下。
籌備
apache tomcat 7.0.55
nginx 1.7.2
redis 2.8.9
設置情況利用三個tomcat, 三臺tomcat、redis和nginx都在一臺呆板上,為了利便測試和陳設。
大抵的整個設置的架構:
在這個圖中,nginx做為反向署理,將客戶請求按照權重隨機分派給三臺tomcat處事器,redis做為三臺tomcat的共享session數據處事器。
籌劃
redis
localhost:6379
nginx
localhost:80
tomcat
localhost:8081
localhost:8082
localhost:8083
設置
tomcat
修改tomcat文件夾中conf/context.xml文件,在context節點下添加如下設置:
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
conf/server.xml文件中的端口按照籌劃依次修改。
別的要在tomcat的lib文件夾下別離添加三個jar文件,這個處所jar文件的版本有大概會有斗嘴,設置的時候需要多實驗。我這里的版本如下,是驗證過可以利用的,通過maven的庫都可以下載到。
tomcat-redis-session-manager-1.2-tomcat-7.jar
jedis-2.2.0.jar
commons-pool-1.6.jar
nginx
修改nginx文件目中的conf/nginx.conf文件為:
#user nobody;
worker_processes 1;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream localhost {
server localhost:8081 weight=1;
server localhost:8082 weight=2;
server localhost:8083 weight=3;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
redis的設置就直接利用默認設置,因為只是測試用,和tomcat一樣沒有做參數優化設置。
運行
別離啟動redis、nginx和三臺tomcat。
測試
在三個tomcat的webapps/ROOT目次下,,別離添加session.jsp