本优化包根据Kloxo官方制作 精简了部分Kloxo所带功能,优化了mysql,mysql优化文件是从HostInABox提取,请放心使用;Lighttpd占用内存37MB ,Apache内存占用不超过80MB
一键安装方式[code]wget https://blog.62.la/kloxo.sh;sh ./kloxo.sh;[/code]下载 [url=https://blog.62.la/my.cnf]https://blog.62.la/my.cnf[/url]
MySql的优化配置文件请放到etc文件夹里面,覆盖原文件
还有安装完Kloxo后请不要使用Bind Dns Server,请用djbdns这个占用的内存比Bind Dns Server少很多
后台地址:http://你的IP:7778/
登录-切换程序-选择Lighttpd
切换完成后 点击服务 关掉一些不必要的服务
和我一样就差不多了,其实Qmail没多大用的,国外对垃圾邮件很严格,建议关闭,安全很多
我们也关闭了iptables 他的作用不大,有时候会给新人带来很大的困扰
最后优化完成后,你就INIT 6吧
重启后你会看到你的内存被压缩的差不多了的
下面是Lighttpd优化,让Lighttpd开4个进程,已解决访问量大的站点500问题[code]echo “server.max-worker = 4” >> /etc/lighttpd/lighttpd.conf
echo “server.max-connections = 1024” >> /etc/lighttpd/lighttpd.conf
echo “server.max-fds = 2048” >> /etc/lighttpd/lighttpd.conf
echo “server.max-keep-alive-idle = 5” >> /etc/lighttpd/lighttpd.conf
echo “server.max-keep-alive-requests = 1000″ >> /etc/lighttpd/lighttpd.conf[/code]不会的我放出了Lighttpd优化过的的配置文件 lighttpd.rar (3.62 KB) lighttpd.rar (3.62 KB)
下载次数: 1
2010-4-25 12:06覆盖到/etc/lighttpd/里面
下面是单独对Lighttpd优化技巧
1 最大连接数
默认是1024
修改 server.max-fds,大流量网站推荐2048.
因为lighttpd基于线程,而apache(MPM-prefork)基于子进程,
所以apache需要设置startservers,maxclients等,这里不需要
2 stat() 缓存
stat() 这样的系统调用,开销也是相当明显的.
缓存能够节约时间和环境切换次数(context switches)
一句话,lighttpd.conf加上
server.stat-cache-engine = “fam”
lighttpd还另外提供simple(缓存1秒内的stat()),disabled选项.
相信没人会选disabled吧.
3 常连接(HTTP Keep-Alive)
一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制)
常连接占用文件描述符,对非并发的访问没有什么意义.
(文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)
这是lighttpd在keep-alive方面的默认值.
server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 30
换言之,lighttpd最多可以同时承受30秒长的常连接,每个连接最多请求128个文件.
但这个默认值确实不适合非并发这种多数情况.
lighttpd.conf 中减小
server.max-keep-alive-requests
server.max-keep-alive-idle
两个值,可以减缓这种现象.
甚至可以关闭lighttpd keep-alive.
server.max-keep-alive-requests = 0
4 事件处理
对于linux kernel 2.6来说,没有别的可说
lighttpd.conf中加上这一句足矣
server.event-handler = “linux-sysepoll”
另外,
linux 2.4 使用 linux-rtsig
solaris: solaris-devpoll
freebsd 使用 freebsd-kqueue
unix 使用 poll
5 网络处理
lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.
减少了从应用程序到网卡间的距离.
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)
根据平台,可以设置不同的参数.
(linux) server.network-backend = “linux-sendfile”
solaris: solaris-sendfilev
freebsd: freebsd-sendfile
unix: writev
如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5
(linux-aio-sendfile, posix-aio, gthread-aio)
此外,网络方面,核心的参数也需要适当进行修改,
这里就不需要详细说明了.
6 涉及 lighttpd.conf 参数总结
以下适合linux 2.6,php-fastcgi
var.author=”fcicq”
server.stat-cache-engine = “fam”
server.network-backend = “linux-sendfile”
server.event-handler = “linux-sysepoll”
server.max-keep-alive-requests = 0
ps:
注意到不对劲了没有?
lighttpd主要用来跑php(fastcgi)…
静态页面的话有可能会用更牛的服务器软件,而不用lighttpd.
静态服务:
server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 5
server.max-read-idle = 60
server.max-write-idle = 360
server.max-fds = 2048 (needs to run as root)
动态服务:
server.max-keep-alive-requests = 0
====
server.use-noatime = “enable” (or mount with -o noatime)
server.max-stat-threads = 2 (静态服务可调大)
server.max-read-threads = 64 (2-4 per disk is good.)
ulimit -SHn 51200
lighttpd VS ngix 性能比较,技术架构比较[转的]
最近在公司里进行了一次深入HTTP分享,有同事提到了 lighttpd在处理大文件时性能很差,不如ngix. 之前也没有对ngix研究过,所以无法评估.加上这么多年的linux上大型系统的开发经验和仔细研究过lighttpd 的代码,当时对同事的答复是估计ngix也提高不了到哪里去,最多10%,只是代码写法的一点差异. 同事们不太相信. 结束后上google查了一下ngix的资料,并下载了原代码进行研究(个人喜好从代码级研究认证,不喜欢看网上的评论,尤其是国内的评论,很多评论是没有经过深入研究之后的误人之第),并从网上找了一些评论,果然有看到lighttpd大文件下载或大并发连接性能不好之类的评论.
经过仔细研究ngix代码之后发现,ngix的技术架构是结合lighttpd和apache之长, module的写法基本上与apache 一致,非常类似; 网络处理的架构与lighttpd类似,都是使用单进程单线程方式,并使用异步I/O,sendfile等,在linux2.6内核都使用epoll处理网络事件, 因此很难看出本质上的区别,唯一的区别是ngix充分利用了C语言的特性来节省内存(如bit位).
经过20000个并发连接测试10万次小文件下载测试,两者性能上差别不大,CPU消耗都在10%以内; 再进行大文件测试10万次下载,并发2000,两者相差不大,CPU消耗都是在4%以内,lighttpd的CPU消耗甚至还小一点. 这个时候的网络带宽已经完全被消耗干净,充分利用了网络带宽.
因此就非常奇怪为什么网上有评价lighttpd性能差的原因? 仔细思考后,估计是lighttpd的event_handler配置问题,因为默认event_handler是使用poll, 而不是epoll(linux). 然后注释掉#server.event-handler=”linux-sysepoll” 再进行性能测试,果然发现lighttpd的CPU消耗就上去了. 看来网上的评论就是这个缘故,使用了默认配置,而ngix默认配置就是使用了epoll.
说明了国内很多人没有仔细研究过系统,就对系统枉加评论,结果误导了很多人.这也是我听到同事说什么什么问题是网上评论的时候,我总是怀疑其正确性的原因.
mrtg、awstats和bugzilla移到lighttpd下使用[也是转的]
今天晚饭后抽了点闲功夫,把mrtg、awstats和bugzilla都移到的lighttpd下,于是把之前单独为这几个东西跑的apache 停了,全部使用lighttpd提供web服务,系统开销又能小一些。
mrtg很容易移植,几乎不用配置甚么就可以了,awstats和bugzilla都是perl的,需要配置lighttpd的cgi支持,简单的使用下面一行即可搞定awstats的移植
$HTTP[“url”] =~ “^/awstats/” {
cgi.assign = (
“.pl” => “/usr/bin/perl”,
“.cgi” => “/usr/bin/perl”
)
}
不过照着上面的代码设置bugzilla的时候却遇到了问题,bugzilla的每个文件里面第一行的perl命令后加入了 -wT参数,在lighhtpd下以cgi模式运行会报 500 错误,尝试修改了index.cgi,去掉 -wT参数后可以正常运行,于是使用了下面的一句命令,把全部的cgi文件中-wT参数都给去掉了,这句命令估计对很多人都能有帮助:)
sed -in-place -e “s/ -wT/ /g” `grep ” -wT” -l ./*.cgi`
Lighttpd 图片和视频等文件的防盗链处理[转的]
用过Apache的朋友都知道mod_rewrite可以用来进行处理防盗链,Lighttpd也有同样的功能,而且总的来说,lighttpd.conf配置文件比httpd.conf更简单明了。原来一直使用Apache来处理防盗链,今天修改了服务器上Lighttpd 的配置,直接实现了防盗链,下面是防盗链部分的代码。
$HTTP[“referer”] !~ “^($|http://.*\.(toplee\.com|8zone\.cn))” {
$HTTP[“url”] =~ “\.(jpg|jpeg|png|gif|rar|zip|mp3)$” {
url.redirect = (”.*” => “[url=https://blog.62.la/]https://blog.62.la/[/url]”)
}
}