- 浏览: 363145 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
hqman:
export LD_PRELOAD=/lib/libpam.s ...
OpenVPN 详细配置 -
wutao8818:
呵呵,标题挺好,内容没看
说话前你是话的主人,说话后你是话的仆人 -
wutao8818:
额,你需要的就是认准一件事。但说起来简单,对某些人来说这很难, ...
我很浮躁 -
damoqiongqiu:
可惜图片一个都没有了。
amf是什么东东 -
fzfx88:
貌似Apache + tomcate 可以解决
解决dwr跨域问题
一,为什么要使用lighttpd?
apache不可以吗?
在支持纯静态的对象时,比如图片,文件等 ,
lighttpd速度更快,更理想
至于它和apache的比较,很多文档,大家可以google一下
二,从何处下载lighttpd?
http://www.lighttpd.net/download/
这个是它的官方站
三,如何安装?
1,编译安装
./configure --prefix=/usr/local/lighttpd
make
make install
configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。
2,编译后配置
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
如果你的Linux是RedHat/CentOS,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你的Linux是SuSE,那么:
cp doc/rc.lighttpd /etc/init.d/lighttpd
其他Linux发行版本可以自行参考该文件内容进行修改。
然后修改/etc/init.d/lighttpd,把
LIGHTTPD_BIN=/usr/sbin/lighttpd
改为
LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd
此脚本用来控制lighttpd的启动关闭和重起:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd restart
3,配置
修改/etc/lighttpd/lighttpd.conf
1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi, mod_compress,mod_accesslog是一般需要用到的。
我们放开 "mod_rewrite"
"mod_compress",
2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
server.document-root = "/www/phc/html/"
mkdir /usr/local/lighttpd/logs
chmod 777 /usr/local/lighttpd/logs/
touch /usr/local/lighttpd/logs/error.log
chmod 777 /usr/local/lighttpd/logs/error.log
server.errorlog = "/usr/local/lighttpd/logs/error.log"
accesslog.filename = "|/usr/sbin/cronolog /usr/local/lighttpd/logs/%Y/%m/%d/accesslog.log"
3)用什么权限来运行lighttpd
server.username = "nobody"
server.groupname = "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
4)静态文件压缩
mkdir /usr/local/lighttpd/compress
chmod 777 /usr/local/lighttpd/compress/
compress.cache-dir = "/usr/local/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html","text/javascript","text/css")
可以指定某些静态资源类型使用压缩方式传输,节省带宽,
对于大量AJAX应用来说,可以极大提高页面加载速度。
5)server.port = 81
6)#$HTTP["url"] =~ ".pdf$" {
131 # server.range-requests = "disable"
132 #}
4,优化
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
freebsd 使用 freebsd-kqueue
unix 使用 poll
5 网络处理
lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.
减少了从应用程序到网卡间的距离.
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)
根据平台,可以设置不同的参数.
server.network-backend = “linux-sendfile”
(linux)
freebsd: freebsd-sendfile
unix: writev
如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5
(linux-aio-sendfile, posix-aio, gthread-aio)
此外,网络方面,核心的参数也需要适当进行修改,
这里就不需要详细说明了.
5,启动
6,配置日志
logrotate & cronolog
logrotate很粗暴,直接把进程砍了然后移动日志
cronolog就是比较不错的方式.
lighttpd用法:
accesslog.filename = " |/usr/sbin/cronolog /var/log/lighttpd/%Y/%m/%d/access_XXXX.log"
7,安装pcre
从何处下载?
http://www.pcre.org/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.bz2
安装过程:
./configure
make clean
make
make install
8,支持fam
gamin默认已安装了此包
yum install gamin-devel
另外配置时需添加:
./configure --prefix=/usr/local/lighttpd --with-fam
9,测试lighttpd的启动:
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/etc/lighttpd.conf
10,防止盗链
#$HTTP["referer"] !~ "^($|http://.*.(chinafotopress.com|chinafotopress.cn))" {
# $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {
# #url.redirect = (".*" => "http://www.baidu.com/")
# url.access-deny = (".jpg")
# }
#}
#$HTTP["referer"] == "" {
# $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {
# #url.redirect = (".*" => "http://www.baidu.com/")
# url.access-deny = (".jpg")
# }
#}
日志处理
Sometimes, Google Analytics just isn't enough when it comes to keeping and interpreting server stats. After finding a suitable log file analyzer, AWStats, the next step involved separating out the log files on a per domain basis. When the server was first set up, everything was shuttled to one set of access and error log files. While AWStats could technically analyze this log, the suggested set up involves having one set per domain. This article details the process of separating out the log files and making sure that these new files get rotated correctly.
Create Log Directories
While it would be possible to keep all of the files in one directory and to just name them relative to the domain, for this tutorial we will assume that we will create subdirectories based on the domain name. The first step would be to create a directory for each domain.
sudo -u www-data mkdir /var/log/lighttpd/www.example1.com
sudo -u www-data mkdir /var/log/lighttpd/www.example2.com
Update lighttpd.conf
After creating the directories, it's time to update the lighttpd conf file in /etc/lighttpd. We'll want to set the log files by host name. We already had directives setting the server.document-root for these domains so we only added the bolded lines.
$HTTP["host"] =~ "(^|\.)example1.com"$" {
server.document-root = "/var/www/www.example1.com",
server.errorlog = "/var/log/lighttpd/www.example1.com/error.log",
accesslog.filename = "/var/log/lighttpd/www.example1.com/access.log",
}
$HTTP["host"] =~ "(^|\.)example2.com$" {
server.document-root = "/var/www/www.example2.com",
server.errorlog = "/var/log/lighttpd/www.example2.com/error.log",
accesslog.filename = "/var/log/lighttpd/www.example2.com/access.log",
}
After adding these directives, you will need to restart the server.
sudo /etc/init.d/lighttpd restart
Update Logrotate
Finally, we will want logrotate to rotate these new directories. Since our main goal is to integrate the logs with AWStats, it made sense to add a separate entry for each log directory. However, if you don't need call different scripts for the different domains, feel free to create one directive. We just copied the existing logrotate configuration and editted it for each of the domains. Below are examples of what this might look like.
/var/log/lighttpd/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
/var/log/lighttpd/www.example1.com/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
/var/log/lighttpd/www.example2.com/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
To make just one configuration entry, it would look like this:
"/var/log/lighttpd/*.log" "/var/log/lighttpd/www.example1.com/*.log" "/var/log/lighttpd/www.example2.com/*.log" {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
Sources
* Lighttpd rotating log files with logrotate tool
* Howto: Lighttpd web server setting up virtual hosting
Trackback URL for this post:
http://tracy.hurleyit.com/trackback/1140
lighttpd虚拟主机配置
$HTTP["host"] == "bbs.xxx.com" {
server.name = "bbs.xxx.com"
server.document-root = "/var/www/bbs"
server.errorlog = "/var/www/bbs/error.log"
accesslog.filename = "/var/www/bbs/access.log"
}
else
lighttpd.conf解释
server.use-ipv6 = "disable" # 缺省为禁用
server.event-handler = "linux-sysepoll" # Linux环境下epoll系统调用可提高吞吐量
#server.max-worker = 10 # 如果你的系统资源没跑满,可考虑调高 lighttpd进程数
server.max-fds = 4096 # 默认的,应该够用了,可根据实际情况调整
server.max-connections = 4096 # 默认等于 server.max-fds
server.network-backend = "linux-sendfile"
server.max-keep-alive-requests = 0 # 在一个keep-alive会话终止连接前能接受处理的最大请求数。0为禁止
# 设置要加载的module
server.modules = (
"mod_rewrite",
"mod_redirect",
# "mod_alias",
"mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
"mod_auth",
"mod_expire",
# "mod_status",
# "mod_setenv",
"mod_proxy_core",
"mod_proxy_backend_http",
"mod_proxy_backend_fastcgi",
# "mod_proxy_backend_scgi",
# "mod_proxy_backend_ajp13",
# "mod_simple_vhost",
"mod_evhost",
# "mod_userdir",
# "mod_cgi",
"mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )
# 网站根目录
server.document-root = "/var/www/"
# 错误日志位置
server.errorlog = "/var/log/lighttpd/error.log"
# 网站Index
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
# 访问日志, 以及日志格式 (combined), 使用X-Forwarded-For可越过代理读取真实ip
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.format = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b \"%{User-Agent}i\" \"%{Referer}i\""
# 设置禁止访问的文件扩展名
url.access-deny = ( "~", ".inc", ".tpl" )
# 服务监听端口
server.port = 80
# 进程id记录位置
server.pid-file = "/var/run/lighttpd.pid"
# virtual directory listings 如果没有找到index文件就列出目录。建议disable。
dir-listing.activate = "disable"
# 服务运行使用的用户及用户组
server.username = "www"
server.groupname = "www"
# gzip压缩存放的目录以及需要压缩的文件类型
compress.cache-dir = "/tmp/lighttpd/cache/compress/"
compress.filetype = ("text/plain", "text/html")
# fastcgi module
# for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
$HTTP["url"] =~ "\.php$" {
proxy-core.balancer = "round-robin"
proxy-core.allow-x-sendfile = "enable"
# proxy-core.check-local = "enable"
proxy-core.protocol = "fastcgi"
proxy-core.backends = ( "unix:/tmp/php-fastcgi1.sock","unix:/tmp/php-fastcgi2.sock" )
proxy-core.max-pool-size = 16
}
# 权限控制
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/htpasswd.userfile"
# 基于 evhost 的虚拟主机 针对域名
$HTTP["host"] == "a.lostk.com" {
server.document-root = "/var/www/lostk/"
server.errorlog = "/var/log/lighttpd/lostk-error.log"
accesslog.filename = "/var/log/lighttpd/lostk-access.log"
# 设定文件过期时间
expire.url = (
"/css/" => "access 2 hours",
"/js/" => "access 2 hours",
)
# url 跳转
url.redirect = (
"^/$" => "/xxx/index.html",
)
# url 重写 (cakephp可用)
url.rewrite = (
"^/(css|js)/(.*)$" => "/$1/$2",
"^/([^.]+)$" => "/index.php?url=$1",
)
# 权限控制
auth.require = ( "" =>
(
"method" => "basic",
"realm" => "admin only",
"require" => "user=admin1|user=admin2" # 允许的用户, 用户列表文件 在上面配置的auth.backend.htpasswd.userfile 里
),
)
}
# 针对端口的虚拟主机
$SERVER["socket"] == "192.168.0.1:8000" {
server.document-root = "/var/www/xxx/"
server.errorlog = "/var/log/lighttpd/test-error.log"
accesslog.filename = "/var/log/lighttpd/test-access.log"
# ...
}
apache不可以吗?
在支持纯静态的对象时,比如图片,文件等 ,
lighttpd速度更快,更理想
至于它和apache的比较,很多文档,大家可以google一下
二,从何处下载lighttpd?
http://www.lighttpd.net/download/
这个是它的官方站
三,如何安装?
1,编译安装
./configure --prefix=/usr/local/lighttpd
make
make install
configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。
2,编译后配置
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
如果你的Linux是RedHat/CentOS,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你的Linux是SuSE,那么:
cp doc/rc.lighttpd /etc/init.d/lighttpd
其他Linux发行版本可以自行参考该文件内容进行修改。
然后修改/etc/init.d/lighttpd,把
LIGHTTPD_BIN=/usr/sbin/lighttpd
改为
LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd
此脚本用来控制lighttpd的启动关闭和重起:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd restart
3,配置
修改/etc/lighttpd/lighttpd.conf
1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi, mod_compress,mod_accesslog是一般需要用到的。
我们放开 "mod_rewrite"
"mod_compress",
2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
server.document-root = "/www/phc/html/"
mkdir /usr/local/lighttpd/logs
chmod 777 /usr/local/lighttpd/logs/
touch /usr/local/lighttpd/logs/error.log
chmod 777 /usr/local/lighttpd/logs/error.log
server.errorlog = "/usr/local/lighttpd/logs/error.log"
accesslog.filename = "|/usr/sbin/cronolog /usr/local/lighttpd/logs/%Y/%m/%d/accesslog.log"
3)用什么权限来运行lighttpd
server.username = "nobody"
server.groupname = "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
4)静态文件压缩
mkdir /usr/local/lighttpd/compress
chmod 777 /usr/local/lighttpd/compress/
compress.cache-dir = "/usr/local/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html","text/javascript","text/css")
可以指定某些静态资源类型使用压缩方式传输,节省带宽,
对于大量AJAX应用来说,可以极大提高页面加载速度。
5)server.port = 81
6)#$HTTP["url"] =~ ".pdf$" {
131 # server.range-requests = "disable"
132 #}
4,优化
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
freebsd 使用 freebsd-kqueue
unix 使用 poll
5 网络处理
lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.
减少了从应用程序到网卡间的距离.
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)
根据平台,可以设置不同的参数.
server.network-backend = “linux-sendfile”
(linux)
freebsd: freebsd-sendfile
unix: writev
如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5
(linux-aio-sendfile, posix-aio, gthread-aio)
此外,网络方面,核心的参数也需要适当进行修改,
这里就不需要详细说明了.
5,启动
6,配置日志
logrotate & cronolog
logrotate很粗暴,直接把进程砍了然后移动日志
cronolog就是比较不错的方式.
lighttpd用法:
accesslog.filename = " |/usr/sbin/cronolog /var/log/lighttpd/%Y/%m/%d/access_XXXX.log"
7,安装pcre
从何处下载?
http://www.pcre.org/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.bz2
安装过程:
./configure
make clean
make
make install
8,支持fam
gamin默认已安装了此包
yum install gamin-devel
另外配置时需添加:
./configure --prefix=/usr/local/lighttpd --with-fam
9,测试lighttpd的启动:
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/etc/lighttpd.conf
10,防止盗链
#$HTTP["referer"] !~ "^($|http://.*.(chinafotopress.com|chinafotopress.cn))" {
# $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {
# #url.redirect = (".*" => "http://www.baidu.com/")
# url.access-deny = (".jpg")
# }
#}
#$HTTP["referer"] == "" {
# $HTTP["url"] =~ ".(jpg|jpeg|png|gif|rar|zip|mp3)$" {
# #url.redirect = (".*" => "http://www.baidu.com/")
# url.access-deny = (".jpg")
# }
#}
日志处理
Sometimes, Google Analytics just isn't enough when it comes to keeping and interpreting server stats. After finding a suitable log file analyzer, AWStats, the next step involved separating out the log files on a per domain basis. When the server was first set up, everything was shuttled to one set of access and error log files. While AWStats could technically analyze this log, the suggested set up involves having one set per domain. This article details the process of separating out the log files and making sure that these new files get rotated correctly.
Create Log Directories
While it would be possible to keep all of the files in one directory and to just name them relative to the domain, for this tutorial we will assume that we will create subdirectories based on the domain name. The first step would be to create a directory for each domain.
sudo -u www-data mkdir /var/log/lighttpd/www.example1.com
sudo -u www-data mkdir /var/log/lighttpd/www.example2.com
Update lighttpd.conf
After creating the directories, it's time to update the lighttpd conf file in /etc/lighttpd. We'll want to set the log files by host name. We already had directives setting the server.document-root for these domains so we only added the bolded lines.
$HTTP["host"] =~ "(^|\.)example1.com"$" {
server.document-root = "/var/www/www.example1.com",
server.errorlog = "/var/log/lighttpd/www.example1.com/error.log",
accesslog.filename = "/var/log/lighttpd/www.example1.com/access.log",
}
$HTTP["host"] =~ "(^|\.)example2.com$" {
server.document-root = "/var/www/www.example2.com",
server.errorlog = "/var/log/lighttpd/www.example2.com/error.log",
accesslog.filename = "/var/log/lighttpd/www.example2.com/access.log",
}
After adding these directives, you will need to restart the server.
sudo /etc/init.d/lighttpd restart
Update Logrotate
Finally, we will want logrotate to rotate these new directories. Since our main goal is to integrate the logs with AWStats, it made sense to add a separate entry for each log directory. However, if you don't need call different scripts for the different domains, feel free to create one directive. We just copied the existing logrotate configuration and editted it for each of the domains. Below are examples of what this might look like.
/var/log/lighttpd/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
/var/log/lighttpd/www.example1.com/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
/var/log/lighttpd/www.example2.com/*.log {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
To make just one configuration entry, it would look like this:
"/var/log/lighttpd/*.log" "/var/log/lighttpd/www.example1.com/*.log" "/var/log/lighttpd/www.example2.com/*.log" {
daily
missingok
copytruncate
rotate 60
compress
notifempty
sharedscripts
postrotate
if [ -f /var/run/lighttpd.pid ]; then \
kill -HUP $(
fi;
endscript
}
Sources
* Lighttpd rotating log files with logrotate tool
* Howto: Lighttpd web server setting up virtual hosting
Trackback URL for this post:
http://tracy.hurleyit.com/trackback/1140
lighttpd虚拟主机配置
$HTTP["host"] == "bbs.xxx.com" {
server.name = "bbs.xxx.com"
server.document-root = "/var/www/bbs"
server.errorlog = "/var/www/bbs/error.log"
accesslog.filename = "/var/www/bbs/access.log"
}
else
lighttpd.conf解释
server.use-ipv6 = "disable" # 缺省为禁用
server.event-handler = "linux-sysepoll" # Linux环境下epoll系统调用可提高吞吐量
#server.max-worker = 10 # 如果你的系统资源没跑满,可考虑调高 lighttpd进程数
server.max-fds = 4096 # 默认的,应该够用了,可根据实际情况调整
server.max-connections = 4096 # 默认等于 server.max-fds
server.network-backend = "linux-sendfile"
server.max-keep-alive-requests = 0 # 在一个keep-alive会话终止连接前能接受处理的最大请求数。0为禁止
# 设置要加载的module
server.modules = (
"mod_rewrite",
"mod_redirect",
# "mod_alias",
"mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
"mod_auth",
"mod_expire",
# "mod_status",
# "mod_setenv",
"mod_proxy_core",
"mod_proxy_backend_http",
"mod_proxy_backend_fastcgi",
# "mod_proxy_backend_scgi",
# "mod_proxy_backend_ajp13",
# "mod_simple_vhost",
"mod_evhost",
# "mod_userdir",
# "mod_cgi",
"mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )
# 网站根目录
server.document-root = "/var/www/"
# 错误日志位置
server.errorlog = "/var/log/lighttpd/error.log"
# 网站Index
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
# 访问日志, 以及日志格式 (combined), 使用X-Forwarded-For可越过代理读取真实ip
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.format = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b \"%{User-Agent}i\" \"%{Referer}i\""
# 设置禁止访问的文件扩展名
url.access-deny = ( "~", ".inc", ".tpl" )
# 服务监听端口
server.port = 80
# 进程id记录位置
server.pid-file = "/var/run/lighttpd.pid"
# virtual directory listings 如果没有找到index文件就列出目录。建议disable。
dir-listing.activate = "disable"
# 服务运行使用的用户及用户组
server.username = "www"
server.groupname = "www"
# gzip压缩存放的目录以及需要压缩的文件类型
compress.cache-dir = "/tmp/lighttpd/cache/compress/"
compress.filetype = ("text/plain", "text/html")
# fastcgi module
# for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
$HTTP["url"] =~ "\.php$" {
proxy-core.balancer = "round-robin"
proxy-core.allow-x-sendfile = "enable"
# proxy-core.check-local = "enable"
proxy-core.protocol = "fastcgi"
proxy-core.backends = ( "unix:/tmp/php-fastcgi1.sock","unix:/tmp/php-fastcgi2.sock" )
proxy-core.max-pool-size = 16
}
# 权限控制
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/htpasswd.userfile"
# 基于 evhost 的虚拟主机 针对域名
$HTTP["host"] == "a.lostk.com" {
server.document-root = "/var/www/lostk/"
server.errorlog = "/var/log/lighttpd/lostk-error.log"
accesslog.filename = "/var/log/lighttpd/lostk-access.log"
# 设定文件过期时间
expire.url = (
"/css/" => "access 2 hours",
"/js/" => "access 2 hours",
)
# url 跳转
url.redirect = (
"^/$" => "/xxx/index.html",
)
# url 重写 (cakephp可用)
url.rewrite = (
"^/(css|js)/(.*)$" => "/$1/$2",
"^/([^.]+)$" => "/index.php?url=$1",
)
# 权限控制
auth.require = ( "" =>
(
"method" => "basic",
"realm" => "admin only",
"require" => "user=admin1|user=admin2" # 允许的用户, 用户列表文件 在上面配置的auth.backend.htpasswd.userfile 里
),
)
}
# 针对端口的虚拟主机
$SERVER["socket"] == "192.168.0.1:8000" {
server.document-root = "/var/www/xxx/"
server.errorlog = "/var/log/lighttpd/test-error.log"
accesslog.filename = "/var/log/lighttpd/test-access.log"
# ...
}
发表评论
-
ifstat
2009-03-20 17:58 681ifstat http://gael.roualland.fr ... -
Memcache协议中文版
2009-03-17 09:42 930写在前头 偶然之间 ... -
bazaar轻巧的版本工具
2008-12-09 22:27 1333最近想自己搞个django项目玩玩,人在不同的地方开发,没 ... -
ubuntu打开exim4发送邮件
2008-12-03 14:48 1583有这样的需求,需要将定时执行脚本的结果发送到某老大 ... -
lighttpd stupid-crawler延迟处理
2008-12-03 09:34 889现在国内有很多搜索引擎,每天会产生大量的请求,时不时会造成 ... -
linux 下大文件分割合并
2008-10-21 09:27 2117要传输一个超大文件到远程服务器,所以想办法分割一下 然后并行 ... -
ubuntu 创建用户
2008-10-11 20:50 1790犯了个错误记录一下 sudo useradd -m ... -
nohup 不挂断命令
2008-10-11 09:48 1689nohup 命令 http://en.wikipedia.or ... -
pure-ftp安装
2008-10-06 18:58 1377pure-ftp安装 1: apt-get install ... -
lighttpd和resin整合笔记
2008-09-26 12:19 1076场景 : 前端1个lighttpd 访问80代理到 resi ... -
中秋收获
2008-09-15 14:32 863在网上逛逛,最近迷上了英文八卦技术新闻。于是重新开始 ... -
linux 去掉配置文件注释
2008-08-26 15:46 1369sudo cat my.cnf |grep -v ^# > ... -
perl cgi开发包安装总结
2008-08-11 17:03 1014# perl -MCPAN -e shell cpan> ... -
虚拟 Linux
2008-08-10 00:39 722使用 Xen:使用虚拟 Linux 来测试应用程序 http: ... -
设置Ubuntu 开机启动lighttpd
2008-06-20 15:29 3119安装了mysql lighttpd 等服务程序 往往需要在开机 ... -
ubuntu 下一个网卡绑定2个ip
2008-06-16 15:49 1523ubuntu 下一个网卡绑定2个ip #vi /etc/net ... -
通过sysctl优化linux内核
2008-05-29 17:04 2618通过调整system control (sysctl)可以显著 ... -
一个进程能够打开最大文件句柄数的设置
2008-05-12 10:31 1550【聚杰网Linux】一个进 ... -
ubuntu8.04 安装错误记录
2008-04-28 12:50 1251http://nmrj.bloghome.cn/posts/1 ... -
linux 搜索包含指定内容的文件
2008-04-19 19:55 1753find -name "*.xml" |x ...
相关推荐
1. 检查lighttpd配置文件(通常为`lighttpd.conf`),确保CGI模块已经启用,并且CGI脚本的执行路径设置正确。 2. 确认lighttpd版本是否为1.4.26,如果是,可以考虑升级到更高版本,因为新版本可能已经解决了这个问题...
此外,对于使用Kloxo这类服务器控制面板的用户,还可以通过图形界面来设置Lighttpd的重写规则,而无需直接编辑配置文件。在Kloxo的域名管理界面中选择对应的域名,然后找到Lighttpd的重写规则设置部分,按照指导添加...
测试方案采用了Apache自带的`ab`命令,通过设置不同的并发请求数量(500至10000)以及两种不同大小的静态文件(1K以下和59K)进行压力测试。测试版本分别为Apache 2.2.14、Nginx 0.9.6和Lighttpd 1.4.28。测试指标...
### Linux服务器端Web服务三剑客(Apache Lighttpd Nginx) #### 一、Apache ##### 概述 Apache HTTP Server(简称Apache)是由Apache软件基金会维护的一个开源Web服务项目,支持跨平台操作,因其强大的安全性与...
- **Web服务器**:如Apache/Apache2或lighttpd。 - **虚拟主机**:如果是租用的虚拟主机,则需联系虚拟主机提供商确认服务器是否已安装了以上软件。 2. **数据库准备**:由于杰奇CMS支持与其他软件共享数据库,...
Ostube2.6在部署过程中存在一定的局限性,例如,传统的LAMP(Linux、Apache、MySQL、PHP)环境并不包含FLV流媒体的模块,因此,如果使用Apache作为Web服务器,则需要额外配置或选择支持流媒体的服务器如Lighttpd或...
例如,可以设置spawn-fcgi监听特定端口,然后Web服务器(如Nginx或Lighttpd)通过FastCGI协议与之通信。 5. 在Web服务器的配置文件中,指定使用spawn-fcgi启动的应用程序和连接参数,完成FastCGI的集成。 总的来说...
(可选)从服务-> Web服务器-> Lighttpd服务器启用lighttpd支持。 将其保留在默认端口81上,不要启用WAN访问。 通过ssh登录到路由器。 您可以在Windows上使用腻子来执行此操作,或者在Linux上仅使用ssh来执行此操作...
常见的Web服务器有Apache、Nginx、IIS和Lighttpd等。 2. HTTP协议:HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于客户端(如浏览器)和服务器之间的通信。 3. 网站托管:将网站内容上传到Web...
- 可选地,可以使用lighttpd或其他Web服务器提供非NFS的映像下载。 - 配置服务器以在适当目录下提供映像文件。 10. **测试与调试**: - 重启Raspberry Pi和目标设备,确保目标设备能够正确地通过PXE启动。 - ...
Web服务器,即lighttpd,nginx或Apache 下载 转到“页面并下载最新的稳定发行文件。 将文件解压缩到您的webroot,然后继续进行配置和设置说明。 配置和设置 Web服务器必须对storage目录具有写访问权,而对所有其他...
Web服务器堆栈(Lighttpd,PostgreSQL,PHP) 类似于Github的Web服务(Gitea) 备份服务(rsnapshot) 不需要root 快速开始 TSD外部(具有Internet连接) 克隆存储库并切换到目录git clone ... && cd ... 下载...
在部署时,用户可能需要配置HTTPD服务器的设置,如虚拟主机、路由规则和权限控制,以确保正确且安全地提供文件服务。 总结,基于WEB的文件系统通过HTTPD服务器实现了通过Web浏览器访问和管理文件的功能,简化了用户...
Web 服务器 JIEQI CMS 可以完美工作在 Apache/Apache2、IIS、lighttpd 等 Web 服务器平台上 * 虚拟主机 虽然我们建议您在独立服务器上运行 JIEQI CMS 系统,但我们也为需要在虚拟主机上运行 JIEQI CMS 系统的用户...
- **Lighttpd**: 轻量级的Web服务器,适合对资源占用有严格要求的应用场景。 #### 3. 搭建Web服务器的步骤 1. **选择合适的Web服务器软件**:根据项目需求和个人偏好选择上述提到的任一Web服务器。 2. **安装Web...
ImageForward的Linux版本可能采用了轻量级的服务器软件如Nginx或Lighttpd,结合脚本语言如Python或Node.js来实现图片转发功能。 - **Windows版本**:对于习惯于Windows环境或者需要在Windows服务器上运行的用户,...
设置了维护模式的4个固定通道 V1.9: 动态网页 无限制的网页制作与配置,网页扩展名为.video 伪jsp的解析,兼容以前的两个固定.jsp网页的支持 统一了调试环境与生产环境,代码与调试路劲为pluto\code\Win64\...
在Linux环境中,Web服务器如Apache、Nginx或Lighttpd等,通常由C或C++编写,因为这两种语言提供了高效和灵活的系统级编程能力。GCC作为一套开源的编译器工具链,包括了C、C++、Objective-C、Fortran、Ada和Go等多种...
如果您在另一台Web服务器(nginx,lighttpd)上,则必须修改Web服务器的配置文件以替换.htaccess角色。安装在下载.zip文件将其解压缩到您的Web服务器文件夹中打开浏览器,然后转到服务器地址。 您会看到一个索引...