我需要以4种尺寸存储25M照片=总共100M个文件,文件大小在每个文件3Kb到200kb之间变化,开始使用的存储大约14-15TB。 我们的目标是让2-4服务器上的数据可用,并使用本地快速Web服务器(nginx或lighthttpd)提供服务,我们需要服务器尽可能多的请求/秒。 我的计划是使用12x2TB(WD RE4)的英特尔2U Servercase,Raid 6(或带冗余的FS)或者操作系统的2x60GB SSD,这是一个好办法吗? 现在:我发现Adaptec 5805ZQ谁可以使用SSD SLC驱动器caching最常用的文件,有什么build议吗? 什么读取caching大小,我需要select? 如果我计划拥有2-4个这样的服务器,那么什么是最好的冗余和负载平衡方式呢? 集群和分布式FS之间关于我们目标的什么pro / con?
在我的设置(debian etch,lighttpd)中,我的网站之一正在调用通过PHP进行image processing的程序。 我想改变这个程序的行为,通过设置一个环境variables,最好不改变networking应用程序。 这个怎么做? =) 为www-data用户拥有的所有进程设置environemtvariables也是可以的,但是我很喜欢在这个场景中,如果.bashrc(?)中的条目被尊重。 谢谢!
H264与lighttpd 1.5无法正常工作,但可以使用1.4任何build议?
我的公司正在推出一个新的网站,在很短的窗口内可能有大量的访问者(预计在2分钟内大约有14k人)。 所以,我正在检查我们的configuration,而我现在最大的问题是使用保持活动的单节点HTTP前端。 前端在CentOS 5.4上运行lighttpd 1.4。 一些假设: 浏览器通常会打开6个并行TCP连接来保持活动状态 浏览器将保持连接处于打开状态,直到达到超时,即使该选项卡已closures(在FF中观察,在每个浏览器上可能都不是这样) 在服务器端,每个连接都会消耗内核的〜150K的内存(我使用conntrack并且想保留它,估计是否正确?) 我们所有的服务器都托pipe在东海岸。 来自拉斯维加斯的服务器的RTT大约是80ms。 具有保持活动的主页使用约25个TCP连接和1500个数据包。 没有保持活跃,这个数字上升到约210个TCP连接和超过3200个数据包。 那么,6 * 14000 = 84,000个TCP连接。 84,000 * 150KB〜= 12GB的内存。 这里是问题:1.我没有在前端可用的内存量。 2. lighttpd 1.4不太适合用这个连接来pipe理。 它伤害的命中/很多。 但是另一方面,如果我停用keepalive,我担心80ms RTT。 我将用一个辅助lighttpd减轻CDN和辅助wwwlogging中的一些问题。 但辩论涉及保持活力的特征。 我想把它关掉,但是我担心页面打开时间的影响会很高(高RTT和两倍的数据包)。 一旦完成了内容检索,我们就会有很多浏览网站的Ajax请求,这些请求通常适用于单个TCP连接。 但我不确定浏览器会释放其他连接,只保持一个打开。 我知道有很多讨论关于保持活力消耗很多资源。 我同意这一点,但考虑到假设和情况(一半的用户在80毫秒到100毫秒之间的RTT),你认为停用它是明智的吗? 作为一个侧面的问题:你知道我在哪里可以find关于内核连接大小和conntrack大小的信息? (printf size_of(sk_buff)除外)。 —编辑:一些testing结果我configurationconntrack接受500k连接(考虑到内存占用,它不应该超过200MB),并启动abtesting。 ab -n 20000 -c 20000 -k http://website.com/banner.jpg 从我在tcpdump中看到的,ab在执行GET之前build立所有连接。 所以我知道这些20k连接消耗了多less内存。 slabtop返回 OBJS ACTIVE USE OBJ SIZE […]
在Linux上运行Lighttpd,我希望能够像执行PHP脚本一样执行Python脚本。 目标是能够执行存储在WWW目录中的任意脚本文件,例如http://www.example.com/*.py 。 我不想为每个请求产生一个新的Python实例(解释器)(就像我在常规CGI中做的那样,如果我没有弄错的话),这就是我使用FastCGI的原因。 遵循Lighttpd的文档 ,以下是我的configuration文件的FastCGI部分。 问题是它总是为每个* .py文件运行/usr/local/bin/python-fcgi脚本,而不pipe该文件的内容如何: http://www.example.com/script.py [output=>] "python-fcgi: test" (不pipescript.py的内容如何) 我对使用任何框架不感兴趣,只是执行单个[web]脚本。 我怎样才能使它像PHP一样,通过请求它的path在WWW目录中执行任何脚本? /etc/lighttpd/conf.d/fastcgi.conf: server.modules += ( "mod_fastcgi" ) index-file.names += ( "index.php" ) fastcgi.server = ( ".php" => ( "localhost" => ( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/lighttpd/php-fastcgi.sock", "max-procs" => 4, # default value "bin-environment" => ( "PHP_FCGI_CHILDREN" => "1", # default […]
我正在尝试在lighttpd中设置一个反向代理,这样/ mobile / video下的所有请求(只有这些请求)才会被redirect到辅助Web服务器的/目录。 这在Apache中是相当容易的,但我不能在我的生活中弄清楚如何在lighttpd中这样做。 $HTTP["url"] =~ "^/wsmobile/video/" { url.rewrite-once = ( "^/wsmobile/video/(.+)" => "/$1" ) proxy.server = ( "" => ( ( "host" => "210.200.144.26", "port" => 9091 ) ) ) } 我已经尝试使用http [“url”]指令,但lighttpd只是忽略这些请求,并继续传递完整的URL到辅助服务器,当然扼杀和抛出404s。 但是,如果我做全局重写,那么一切都被转发到辅助服务器,这也不是我想要的。 我如何去做这个任务?
我试图validation访问webroot(/ )中的任何东西,除了驻留在特定目录(/目录/ )的任何东西,我已经试过这两个选项无济于事: $HTTP["url"] =~ "^(?!(/directory))" { auth.require = ( "" => ( "method" => "basic", "realm" => "auth to this area", "require" => "user=username" ) ) } $HTTP["url"] != "/directory" { auth.require = ( "" => ( "method" => "basic", "realm" => "auth to this area", "require" => "user=username" ) ) }
我写了一个munin-plugin来计算lighttpd的http-statuscodes。 剧本: #!/bin/bash ###################################### # Munin-Script: Lighttpd-Statuscodes # ###################################### ##Config # path to lighttpd access.log LIGHTTPD_ACCESS_LOG_PATH="/var/log/lighttpd/access.log" # rows to parse in logfile (higher value incrase time to run plugin. if value to low you may get bad counting) LOG_ROWS="200000" # #munin case $1 in autoconf) # check config AVAILABLE=`ls $LIGHTTPD_ACCESS_LOG_PATH` if [ "$AVAILABLE" = "$LIGHTTPD_ACCESS_LOG_PATH" […]
对我来说这似乎是合乎逻辑的,但似乎并不奏效。 $ HTTP [“host”] =〜“(^ | \。)hd.domain \ .com $”{ server.document-root =“/ domain_site /” $ HTTP [“url”] =〜“^ / aa /”{ server.document-root =“/ domain_aa_site /” } } 当我去http://hd.domain.com/aa/我得到“404 – 找不到” 我究竟做错了什么?
在最近进行dist-upgrade时,我在Ubuntu 8.0.4上安装的lighttpd-1.4.19已经无法使用/etc/init.d/lighttpd restart命令重新启动或重新加载。 ~$ sudo /etc/init.d/lighttpd restart * Stopping web server lighttpd …done. * Starting web server lighttpd 2009-06-13 04:06:36: (network.c.300) can't bind to port: 80 Address already in use …fail! 当我重新加载时发生同样的错误。 我解决它的方式是杀死lighttpd,然后发出启动命令,但似乎我不应该这样做:) 我看了我的configuration文件,并不能发现任何即时错误。 有没有人有任何想法可以导致这个错误? 这似乎是写这个问题,通过apt-get路由可用的最新版本。 我的configuration文件是: # Debian lighttpd configuration file # ############ Options you really have to take care of #################### ## modules […]