企业Web服务器现场抓鸡案例分享
目录:
一、apache 一些优化思路和技巧
二 、抓鸡
一、apache一些优化思路和技巧
1.Apache常用运行模式
(1)Perfork:进程级别模式
工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足 MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。
(2)worker:线程模式
worker使用了多进程和多线程的混合模式,worker模式也同样会先预派生一些子进程,然后每个子进程创建一些线程,同时包括一个监听线程,每个请求过来会被分配到一个线程来服务。线程比起进程会更轻量,因为线程是通过共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下会比prefork有更多可用的线程,表现会更优秀一些,多进程加多线程模式
(3)event:事件模式
解决了keep-alive长连接的时候占用线程资源被浪费的问题,在event工作模式中,会有一些专门的线程用来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务器的线程,执行完毕后,又允许它释放。这增强了在高并发场景下的请求处理。
当某个连接没有请求时,会主动关闭连接,在work模式下,必须等keep-alive超时,才可以释放。
测试开发过程,不建议使用
注意:根据业务场景选择模式
业务量大,cup消耗大->使用worker模式,处理性能高
2. 查看Apache模式
[root@7oca7host htdocs]#7s
index.htm1_.info.phpmysqli.phpmysq1-pdo.php mysq1.php
[root@i7ocalhost htdocs]#.cd --
[root@7ocalhostapache2]#1s
Bin bui1d cgi-bin conf erro htdocs log
[root@7ocaThost apache2]#pwd
/usr/local/apache2
[root@7ocaThost apache2] #bin/httpd -l
Core.c
Mod_so.c
http_core.c
Worker.c
Apache编译进去是worker模式运行
切换另一台:perfork模式
对内存要求大
[root@hadoop apache2]# cd bin
[root@hadoop bin]# ls
[root@hadoop bin]# . /httpd -1
Compiled in modules:
core .c
Prefork.c
http_so.c
打开httpd.conf
#Real-time info on requests and configuration#工nclude conf/extra/ httpd-info.conf
#virtua7 hosts..
#工nc1ude conf/extra/httpd-vhosts.conf
#Local ackess to the Apache HTTPServer Manua1#Include conf/extra/httpd-manua7.conf
#Distributed authoring and versioning (webDAv)#工nclude conf/extra/ httpd-dav.conf
various default settings .
#Include conf/extra/httpd-defau1t.conf
#configure mod_proxy_htm1 to understand HTML4/XHTML1<工fModuTe proxy_html_module>_
Include conf/extra/proxy -html.conf</工fModu 7e>
#secure (ssL/TLs)connections
#工ncTude conf/extra/httpd-ss1.conf#
#Note: The fo77owing must must be present to
查看httpd-mpm.conf
<IfModu7e mpm__worker mo>
#最大服务端请求连接,默认256,量大满足不了
serverLimit 20000
#启动apache,启用多少进程
Startservers 8
#指定最小空闲线程数
MinspareThreads 75
#指定最大空闲线程数
MaxspareThreads 250
#每一个进程并发最大线程个数
ThreadsPerchild 25
#最大处理的请求数
MaxRequestworkers 400
#最大连接数
MaxConnectionsPerchild 0
</IfModu1e>
二、企业web服务器现场抓鸡案例
查看服务器寻找异常
应用环境:apache+jk+tomcat
网站:电商类
异常:僵死进程
服务器进程freeDSB异常进程,模拟正常进程就可能是异常
Sb33进程
998进程
所有异常进程都是mysql进程,就代表是中毒了
Perl:漏洞异常进程
109ma进程
Sbaok进程
服务器中木马,接网就会断开,由一个进程入手解决,通过业务入手。
排查异常:
#进入目录apache:
[root@i-465-39832-M apache]# Is
#查找隐藏文件
#查看cgi-bin
Test-cgi
查看apache配置文件,查看是否启用cgi
LoadModu1eheaders_module modu1es/mod_headers.soLoadModu1eident_modu1e modu1es /mod_ident.so
LoadModule usertrack_module modules/mod_usertrack. soLoadModuleunique_id_module modules/mod_unique_id.soLoadModulesetenvif_module modules/mod_setenvif.soLoadModuleversion_modu1e modu1es/mod_version.soLoadModu1emime_modu1e modules/mod_mime . so
LoadModu1e dav_modu1e modu1es/mod_dav.so
LoadModule status_modu1e modules/mod_status.so
LoadModule autoindex_module_modu1es/mod_autoindex.soLoadModule asis_modu1e modules/mod_asis.so
LoadModule info_module modu1es/mod_info. soLoadModule cgi_module modu1es/mod_cgi.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModulevhost_alias_module modules/mod_vhost_alias.soLoadModule negotiation_module modules/mod_negotiation.soLoadModu1edir_modu1e modu1es/mod_dir.so
LoadModuleimagemap_module modules/mod_imagemap.soLoadModuleactions_module modu1es/mod_actions.soLoadModulespe1ing_module modules/mod_spe1ing.soLoadModuleuserdir_module modules/mod_userdir.soLoadModulealias_module modu1es/mod_alias.so
LoadModule rewrite_module modules /mod_rewrite.so