标签(空格分隔): nginx 过滤器 监听器
目录.png
背景:一个同事问到这个问题,自行百度整理大体解决的思路,都是参考前辈的文档,目前这儿不做揣测。
前期相关打算
1.网站的运行环境
一般情况下,使用的是linux+tomcat+jdk+mysql,要是查看具体版本的话,连接linux后步入须要查看的tomcat路径下的bin内,直接输入: sh version.sh
要是其他的搭建方法,我就不太了解了。
2.预估最高访问量
可以参考之前的统计数据进行大体的评估。
针对问题的描述
公司有类似答题大赛的活动,访问量在一个月时间内,会比较高。
方案一
限制IP访问,针对单机模式
实现方法有很多,我只大体说下两种形式:
方案二
针对多机模式
经过验证,系统对大用户量使用的响应方面,Apache+3Tomccat集群> Apache+2Tomcat集群> Apache集成Tomcat >单个Tomcat。
于是可以降低多个应用服务器,同时搭建nginx做负载均衡。按照预估最高访问量,进行评估须要搭建几个应用服务器。基本上两个就够用了。
方案三
tomcat应用服务器的并发访问优化
要是应用服务器使用的是tomcat,官方文档强调基本在2000左右,实际测试同一时刻的承受稳定访问量在250左右。
数据来源,参考文档Tomcat才能稳定支持的最大用户并发数 。
解决方式
参考文档tomcat 高并发配置 与优化 。
总之:
要是网站搭建在tomcat应用服务器的话,基本依照方案三的解决方案,可以应对大部分场景,同时这些也是最为简单的解决方法,给出如下配置方案:
1.修改tomcat中catalina.sh的配置,在文件开始处加
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true"
2.修改tomcat中server.xml
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443" />
备注:对于并发量的优化,还要看数据库及程序性能,顺便说一句,不要忘记改os的最大文件句柄数等等