本文目录一览:
3Gweb服务器有什么作用啊
3GWeb 自防御Web平台的主要特长 高诚信的Web服务器, 保护企事业单位的信誉形象及品牌投资 高可信: 永远传送干净的,可信的网页给访问者。再不会有任何非法篡改,没有任何病毒,没有任何恶性代码!保护企业的信誉形象,保护品牌投资,防止法律纠纷;防止因为散发病毒而伤害您的访问者的PC. 尖端技术保证访问者看到的网页永远是你的原文! 强大的HTTP Server 功能和LAMP环境: 高速, 高性能, 高信赖度 完全符合支持Web 的国际标准: (Apache內含): URL (Uniform Resourc Locators); HTTP (Hypertext Transfer Protocol); HTML (Hypertext Markup Language); CGI (Common Gateway Interface); Static Pages (html, jpg, gif, wav, mp3, mov, etc.) Dynamic Script (CGI script, shtml, Perl, php, java, etc.) Virtual Host ( built multi Web sites on one server), DSO (Dynamic Share Object), 和SSI (Server Side Includes), SSL (Secure Sockets Layer), SSH 等 OS: Linux, 数据库MySQL, 开发环境PHP, Perl, etc. 领先世界的自我防御功能和强大的抗攻击能力: 抗御上百种已知攻击:无论是来自通信层的攻击,还是应用层的已知攻击, 包括:DDoS, SQL注入,缓冲区溢出, XSS,网页挂码,Codered, Nimda等。(经国家信息技术安全研究中心测试) 抗御未知攻击:即使黑客使用任何未知攻击技术,包括0日攻击等,入侵到了服务器内部,3Gweb的强大的免疫,自我治愈和神经检测等功能,仍会维持网站继续工作。 依据最先端的计算机生物安全的原理设计和研制的,具有人体的自我防御功能的web服务器, 物理隔离:由双主机母板构成两个工作区:“隔离区”和“无菌区”。网站服务器不再是一个贯通外网WAN和内网LAN的通道。 革命的免疫系统:你的Web原文件和数据库将被放在“无菌区”里,没有任何人可以从Internet直接接触它们。“隔离区”里的Web文件将被认证技术和加密技术加以保护。没有任何病毒或蠕虫可以感染网页.无论是已知病毒还是未知病毒. 先进的自我治愈系统: 无论是网页或Web content被篡改还是被插入恶意代码,甚至被删除,都可以在被访问的瞬间自动修复,不会中断网站的正常运行。并且可以自动修复和自动启动HTTP Daemon! 最先端的防止篡改/伪造技术:被篡改的网页对外显露时间是 0秒 ,网站访问者永远看不到任何被篡改的内容! 最顶级的防止失窃和泄密:即使攻击者入侵了网站服务器,他(她)仍旧不能盗窃您的机密和敏感的文件和信息以及您的Web程序。防止从动态文件中窃取内部数据库的口令,IP地址等重要信息。 先进的数字皮肤:类似于“千兆防火墙+Web应用防火墙(WAF)”的功能;可以同时监测过滤http和https通信协议;如果抓住攻击,马上自动封闭攻击者的IP。 消除当前网站服务器的各种安全漏洞; 等; 节约成本,易于导入安装,提升网站管理水平,改善管理维护工作,多种用途 降低网站总体运营费用:包括降低导入成本, 网站运营管理和减少灾难恢复等 软硬件一体化,all_in_one, 产品。大幅缩短导入时间;(我们知道,您最终希望的是“汽车”,而不是一堆“汽车零部件”,何必浪费您宝贵的时间和精力去攒机器呢?)。 24小时日夜自我监测功能;大幅降低网管工作强度; 自动报警:可以在 第一时间发警报到网管人员的email或手机! 远距离管理功能和多种Log文件; 支持各种应用服务器(例:IBM WebSphere),支持多层架构的网站; 支持MS-IIS环境。(请询问技术员); 与其他传统安全产品兼容。如:防火墙,CA认证等
麻烦采纳,谢谢!
如何设置Tomcat的JVM虚拟机内存大小
windows下修改JVM内存大小:
情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置
要添加在tomcat 的bin 下catalina.bat 里
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加,红色的为新添加的.
set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true
情况二:安装版的Tomcat下没有catalina.bat
windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
原值为
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs
加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效
jvm参数说明:
-server 一定要作为第一个参数,启用JDK的server版本,在多个CPU时性能佳
-Xms java Heap初始大小。 默认是物理内存的1/64。
-Xmx java heap最大值。建议均设为物理内存的80%。不可超过物理内存。
-Xmn java heap最小值,一般设置为Xmx的3、4分之一。
-XX:PermSize 设定内存的永久保存区初始大小,缺省值为64M。
-XX:MaxPermSize 设定内存的永久保存区最大大小,缺省值为64M。
-XX:SurvivorRatio=2 生还者池的大小,默认是2。如
-XX:NewSize 新生成的池的初始大小。 缺省值为2M。
-XX:MaxNewSize 新生成的池的最大大小。 缺省值为32M。
+XX:AggressiveHeap 让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss 每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-XX:+UseParNewGC 缩短minor收集的时间
-XX:+UseConcMarkSweepGC 缩短major收集的时间
-XX:userParNewGC 可用来设置并行收集(多CPU)
-XX:ParallelGCThreads 可用来增加并行度(多CPU)
-XX:UseParallelGC 设置后可以使用并行清除收集器(多CPU)
end time 与Maximum Number Of Cycles如何协调设置
1. Resin安装及自启动设置
创建开机自动启动
cp contrib/init.resin /etc/rc.d/init.d/resin
vi /etc/rc.d/init.d/resin
设置正确的路径
JAVA_HOME=/usr/local/jdk1.6.0_13
RESIN_HOME=/usr/local/resin-3.1.8
赋予可执行权限
chmod +x /etc/rc.d/init.d/resin
加为自启动服务:
chkconfig --add resin
chkconfig --level 35 resin on
service resin start
解决启动服务错误: log_daemon_msg: command not found
将该函数调用到的地方注释掉并用echo 来代替。如:
log_daemon_msg “resin start”
改为
echo “resin start”
修改好后可以用service resin start/stop/restart来执行相关的命令。
2. 设置resin.conf参数及JVM设置
jvm-arg-Xmx4096m/jvm-arg
jvm-arg-Xms4096m/jvm-arg
jvm-arg-Xmn512M/jvm-arg
jvm-arg-Xss50M/jvm-arg
jvm-arg-XX:PermSize=768M/jvm-arg
jvm-arg-XX:MaxPermSize=768M/jvm-arg
jvm-arg-XX:SurvivorRatio=8/jvm-arg
jvm-arg-XX:MaxTenuringThreshold=7/jvm-arg
jvm-arg-XX:GCTimeRatio=19/jvm-arg
jvm-arg-XX:+UseParNewGC/jvm-arg
jvm-arg-XX:+UseConcMarkSweepGC/jvm-arg
jvm-arg-XX:+CMSPermGenSweepingEnabled/jvm-arg
jvm-arg-XX:+CMSClassUnloadingEnabled/jvm-arg
jvm-arg-XX:+UseCMSCompactAtFullCollection/jvm-arg
jvm-arg-XX:CMSFullGCsBeforeCompaction=2/jvm-arg
jvm-arg-XX:-CMSParallelRemarkEnabled/jvm-arg
jvm-arg-XX:+DisableExplicitGC/jvm-arg
jvm-arg-XX:CMSInitiatingOccupancyFraction=70/jvm-arg
jvm-arg-XX:SoftRefLRUPolicyMSPerMB=0/jvm-arg
jvm-arg-XX:+PrintClassHistogram/jvm-arg
jvm-arg-XX:+PrintGCDetails/jvm-arg
jvm-arg-XX:+PrintGCTimeStamps/jvm-arg jvm-arg-XX:+PrintGCApplicationConcurrentTime/jvm-arg
jvm-arg-XX:+PrintGCApplicationStoppedTime/jvm-arg
jvm-arg-Xloggc:log/gc.log/jvm-arg
jvm-arg-Xdebug/jvm-arg
jvm-arg-Dcom.sun.management.jmxremote/jvm-arg
内存设置配置:
memory-free-min5M/memory-free-min
最大线程数
!-- Maximum number of threads. --
thread-max1024/thread-max
!-- Configures the socket timeout --
socket-timeout65s/socket-timeout
配置最活连接和超时时间
!-- Configures the keepalive --
keepalive-max2048/keepalive-max
keepalive-timeout15s/keepalive-timeout
3. 配置jconsole监控JVM
$JAVA_HOME/jre/lib/management/jmxremote.password.template的文件是远程连接时的设置用户和密码的文件,
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template $JAVA_HOME/jconsole/jmxremote.password
chmod 600 $JAVA_HOME/jconsole/jmxremote.password
vi jmxremote.password
去掉#monitorRole RED前的注释并将RED修改为你要设置的密码。在resin.conf加入以下配置,其中被监控主机的IP需要和主机IP一致
jvm-arg-Dcom.sun.management.jmxremote.port=12345/jvm-arg
jvm-arg-Dcom.sun.management.jmxremote.ssl=false/jvm-arg
jvm-arg-Dcom.sun.management.jmxremote.access.file=/usr/local/jdk1.6.0_13/jre/lib/management/jmxremote.access/jvm-arg jvm-arg-Dcom.sun.management.jmxremote.password.file=/usr/local/jdk1.6.0_13/jre/lib/management/jmxremote.password/jvm-arg
jvm-arg-Dcom.sun.management.jmxremote.authenticate=true/jvm-arg
jvm-arg-Djava.rmi.server.hostname=192.168.100.9/jvm-arg
在客户端基本不用怎么设置,在 JDK 安装目录中(JDK_HOME/bin/jconsole.exe)启动 jconsole.exe 就可以打开主界面。输入192.168.100.9:12345 用户名和密码即可看到监控界面中关于jvm的相关信息。操作
双击jconsole.exe启动连接对话框
4. 配置Resin后台管理
management path="${resin.root}/admin"
user name="admin" password="MnHpobDOvrMOyQFWoa5w7A=="/
resin:if test="${resin.professional}"
deploy-service/
jmx-service/
log-service/
xa-log-service/
/resin:if
/management
web-app id="/resin-admin" root-directory="${resin.home}/php/admin"
!--
- Administration application /resin-admin--
prologue
resin:set var="resin_admin_user" value="admin"/
resin:set var="resin_admin_password" value="password"/
resin:set var="resin_admin_external" value="true"/
resin:set var="resin_admin_insecure" value="true"/
/prologue
/web-app
二. 网络优化部分
1. 减少TCP连接中的TIME-WAIT或 CLOSE-WAIT包
Vim /etc/sysctl.conf加入以下配置
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
配置属性说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
tcp_syn_retries :INTEGER
默认值是5
对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的)
tcp_synack_retries :INTEGER
默认值是5
对于远端的连接请求SYN,内核会发送SYN + ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间。(可以根据上面的 tcp_syn_retries 来决定这个值)
tcp_keepalive_time :INTEGER
默认值是7200(2小时)
当keepalive打开的情况下,TCP发送keepalive消息的频率。(由于目前网络攻击等因素,造成了利用这个进行的攻击很频繁,曾经也有cu的朋友提到过,说如果2边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间是不是就是2小时,空连接攻击? tcp_keepalive_time就是预防此情形的.我个人在做nat服务的时候的修改值为1800秒)
tcp_keepalive_probes:INTEGER
默认值是9
TCP发送keepalive探测以确定该连接已经断开的次数。(注意:保持连接仅在SO_KEEPALIVE套接字选项被打开是才发送.次数默认不需要修改,当然根据情形也可以适当地缩短此值.设置为5比较合适)
tcp_keepalive_intvl:INTEGER
默认值为75
探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值)
再执行以下命令,让修改结果立即生效:/sbin/sysctl -p
用以下语句看了一下服务器的TCP状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
三. 解决Too many open files问题
Too many open files 问题出现有两种情况:
一种是在搜索的时候出现,多半是由于索引创建完毕之后被移动过,如果创建索引的时候不出现该错误,搜索的时候也一般是不会出现的。如果出现了,有两种处理办法,一种是修改合并因子和最小合并因子,并且使用
IndexWriter.Optimize() 优化索引,这样会将索引文件数量减少到文件系统限制之内;另外一种办法是修改操作系统的打开文件数量限制。方法如下:
按照最大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。 配置操作如下:
# cat /proc/sys/fs/file-max
如果设置值太小, 修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效。
# echo 65535 /proc/sys/fs/file-max
编辑文件/etc/sysctl.conf,插入下行。
fs.file-max = 65535
执行sysctl –p生效
设置ulimit –n 65535
在/etc/security/limits.conf文件中设置最大打开文件数, 下面是一行提示:
#
添加如下这行。
* - nofile 65535
这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。
硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
当增加文件限制描述,可以简单的把当前值双倍。 例子如下, 如果你要提高默认值1024, 最好提高到2048, 如果还要继续增加, 就需要设置成4096。
另外一种情况是在创建索引的时候,也有两种可能,一种是合并因子太小,导致创建文件数量超过操作系统限制,这时可以修改合并因子,也可以修改操作系统的打开文件数限制;另外一种是合并因子受虚拟机内存的限制,无法调整到更大,而 需要索引的doc 数量又非常的大,这个时候就只能通过修改操作系统的打开文件数限制来解决了。
在系统访问高峰时间以root用户执行以下的脚本,可能出现的结果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。
ps -aef|grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
系统默认程打开最多文件句柄数值1024。但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:
ulimit -HSn 4096 以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来, /etc/security/limits.conf