`
ferreousbox
  • 浏览: 284676 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

lighttpd的安装和基本模块的使用介绍

阅读更多

    前端时间以为系统的需要,就弄了个lighttpd,主要是使用flowplayer和lighttpd搭建一个在线的flv流媒体播放功能。而且lighttpd也是有mod_flv_streaming模块来支持flv视频的流播放功能,不过我也是只是简单的使用了其中的功能,并不是很深入,但是入门还是可以的。

    首先就是lighttpd的安装了,lighttp的安装需要pcre-7.6.tar.gz,主要是正则式的解析,安装包如下:

1.pcre-7.6.tar.gz    (http://www.pcre.org/)
2.lighttpd-1.4.19.tar.gz   (http://www.lighttpd.net/download/)

一、安装pcre和lighttpd

01 // pcre的安装
02 #tar xf pcre-7.6.tar.gz
03 #cd pcre-7.6
04 #./configure
05 #make clean
06 #make
07 #make install
08
09 // lighttpd的编译安装
10 #tar xf lighttpd-1.4.19.tar.gz
11 #cd lighttpd-1.4.19
12 #./configure --prefix=/usr/local/lighttpd
13 #make clean
14 #make
15 #make install
16
17 // lighttpd的配置文件、用户组和用户的配置
18 #mkdir /usr/local/lighttpd/etc
19 #cp doc/lighttpd.conf /usr/local/lighttpd/etc
20 #groupadd lighttpd
21 #useradd -g lighttpd lighttpd
22
23 // lighttpd的日志文件设置
24 #mkdir /usr/local/lighttpd/logs
25 #vi /etc/init.d/lighttpd
26 修改LIGHTTPD_CONFIG=/etc/sysconfig/lighttpd为/usr/local/lighttpd/etc/lighttpd.conf
27 修改LIGHTTPD_BIN=/usr/sbin/lighttpd为/usr/local/lighttpd/sbin/lighttpd

二、lighttpd的简单配置和主要参数说明

#vi /usr/local/lighttpd/etc/lighttpd.conf
 server.modules 根据需要启动模块
 server.document-root 改为你的网站的根目录(如/www)
 server.errorlog 改为错误日志的路径(如/usr/local/lighttpd/logs/error.log)
 accesslog.filename 改为访问日志的路径(如/usr/local/lighttpd/logs/access.log)

三、启动lighttpd

#/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/etc/lighttpd.conf

  然后我们在/www下建立一个index.html,输入hello,然后访问该服务器即可看到该页面,即表明lighttpd安装成功!
lighttpd的命令如下:
#/usr/local/lighttpd/sbin/lighttpd --help
-f <name> 指定配置文件的路径
-m <name> 指定模块的加载目录,默认是/usr/local/lighttpd/lib
-p        在屏幕上显示解析后的配置文件信息(运行信息),要指定-f参数
-t        检测配置文件的正确行,要指定-f参数
-D        设置lighttpd非后台运行,默认是后台运行
-v        显示lighttpd的版本
-V        显示lighttpd的编译时特性信息
-h        显示帮助信息,同--help

四、lighttpd的模块配置

    lighttpd按照上面的安装步骤后,其所有模块都已经安装在/usr/local/lighttpd/lib目录下了,我们设置在server.modules中的模块名称和lib目录下的模块文件的名称一致即可,如mod_secdownload.so就是表示mod_secdownload模块。我们可以在server.modules的列表中增加mod_secdownload来使lighttpd支持mod_secdownload。另外还可以使用这样的语法来增加模块:server.modules += ("mod_secdownload")

1)rewrite 模块配置
    如果要配置rewrite模块,则直接在lighttpd.conf文件中书写:
url.rewrite-once = (
  "^/show-([0-9]+)\.html" => "$1.html",
  "^/v/show-([0-9]+)\.html" => "$1.html"
)

    如果有多个,则使用,分割开写即可,如上说述!另外还有url.rewrite-repeat等方式,请参看文档http://trac.lighttpd.net/trac/wiki/Docs%3AConfigurationOptions!其基本的正则式和apache的rewrite模块基本一样,只是书写形式不一样而已。比如按照上面的rewrite规则,我们在www目录下建立文件:123.html,然后访问:http://localhost:8080/show-123.html即可以访问到123.html这个文件了,和直接访问:http://localhost:8080/123.html是一样的效果。
 

2)secdownload 模块配置
    secdownload是安全下载模块,其主要原理就是根据时间戳来判断请求是否已经超时了,如果超过了指定的时间那么将不允许访问指定的资源,否则就是可以访问。其在lighttpd.conf文件中的配置如下:

secdownload.secret          = "my-password"
secdownload.document-root   = "/home/my-download/"
secdownload.uri-prefix      = "/rs/dl/"
secdownload.timeout         = 60

    先来说下lighttpd针对该模块的url要求,如果使用lighttpd的secdownload模块,那么其请求的url地址必须满足特定的要求才可以,其要求的url格式如下:

<uri-prefix>/<token>/<timestamp-in-hex>/<rel-path>

    其url地址由四个部分组成,分别说明如下:
1.<uri-prefix>:配置文件中secdownload.uri-prefix指定的前缀;

2.<token>:是由配置文件中指定的secdownload.secret要下载的文件的路径(必须以/开头)时间戳三者连接后的MD5加密后的字符串,注意官方网站上提供的例子是php的,其中php的time()获取的就是从1970年到当前的标准时间(单位是秒)的8进制表示形式,如果是使用java的话,那么可以通过如下代码来获取:

1 String timestamp = String.format("%08x", System.currentTimeMillis()/1000);

   因为System.currentTimeMillis()获取的是毫秒,所以应该除1000,这样才可以。比如我要下载的文件的文件存放路径为:/home/my-download/aa.txt。注意到这里的路径前缀就是配置文件中的secdownload.document-root的值,最好是将secdownload.document-root的值设置在当前lighttpd的server.document-root目录之外,这样就可以避免直接下载了。那么针对这个文件动态生成token的java代码就应该是如下了:

1 String timestamp = String.format("%08x", System.currentTimeMillis()/1000);
2 String encoder = Encrypt.MD5("my-password" + "/aa.txt" + timestamp);

    其中Encrypt.MD5是我自己的一个MD5加密方法,大家可以自己写一个,注意该方法中三个部分我是分开写的,第一个就是我们在lighttpd配置文件中设置的secdownload.secret,第二个就是我们要下载的文件名称(包括路径),是相对secdownload.document-root的路径而言的,第三个部分就是我们获取到的当前的时间戳了。这样我们就可以动态的生成了一个满足lighttpd要求的token。

3.<timestamp-in-hex>:就是我们刚才生成的时间戳,即上面的timestamp了;

4.<rel-path>:这个就是我们要下载的文件,也就是aa.txt了。

    配置文件中secdownload.timeout是用来校验时间戳在多长时间后失效的,我们这里设置的是1分钟,即60秒。这表明,从我们生成下载地址后的60s内如果没有人点击这个地址那么该链接就将失效。这样也就可以基本防止文件被随意下载了。

3)mod_proxy 代理模块配置
    该模块主要是用来连接lighttpd和动态服务器的,如tomcat,在配置文件中输入如下:

$HTTP["url"] =~ ".jsp|.go|.do|action" {
    proxy.balance = "fair"
    proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8080 ),("host" => "127.0.0.1", "port" => 18080) ))
}

    其中host字段表示代理服务器的配置(ip和端口),如果有多个则可以配置负载服务器,这里配置的是两个。proxy.loadblance用来做负载,具体的没有研究过,大家可以参看官方文档详细了解下。

    这里主要简单的说了lighttpd的安装部署和简单模块的使用,希望可以和大家一起相互交流~~~

4
0
分享到:
评论

相关推荐

    lighttpd 安装配置

    详细介绍了lighttpd 安装与配置。

    lighttpd的权限认证模块 mod_auth

    NULL 博文链接:https://hlee.iteye.com/blog/549981

    lighttpd安装全集

    安装lighttpdReleases of lighttpd are built regulary for at least the following platforms ● Linux(binary packages for FC3,SuSE,Debian,Gentoo,PLD-Linux,OpenWRT) ● *BSD(FreeBSD,NetBSD,OpenBSD,MacOSX)...

    Lighttpd源码分析_mobi

    lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速传输方式,以及...

    jquery-upload-progress, 上传进度栏使用 apache Nginx 和lighttpd上传进度模块.zip

    jquery-upload-progress, 上传进度栏使用 apache Nginx 和lighttpd上传进度模块 它可以与apache上传进度模块,Nginx 上传进度模块或者lighttpd一起使用,在这里阅读更多: ...

    Linux Lighttpd 配置安装 运行 测试

    在Linux上安装Lighttpd,里面有遇到的一些问题的解决方法,整个安装流程,还有参考网站

    最新lighttpd源码 lighttpd-1.4.22

    具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能...

    ubuntu lighttpd实现websocket

    1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:https://forum.mongoose-os.com/index.php?p=/categories/mongoose ...

    lighttpd配置和启动脚本

    包括lighttpd.conf配置文件以及用于控制web server启动和停止的脚本。

    Lighttpd源码分析

    资源名称:Lighttpd源码分析内容简介: 作为最为优秀的轻量级Web Server之一,Lighttpd有着众多的忠实拥护者和使用者。Lighttpd源码分析就是一本介绍分析Lighttpd源码的初级读本,其主要目标在于:一方面让已经接触...

    lighttpd和nginx比较

    introduce the main difference between lighttpd and nginx

    iphone 下的 lighttpd 安装 不启动 整理

    NULL 博文链接:https://beike.iteye.com/blog/364813

    lighttpd-1.4.20源码分析

    lighttpd-1.4.20源码看了很久了,学习总结本来早就该写...各基本数据结构的分析整理倒是基本完了 但是lighttpd源码最核心的东西(比如配置信息的加载 比如对客户请求访问的响应 等) 我还没整理完 呵呵 未完 请继续关注

    suse linux下安装php5、Lighttpd .

    use linux下安装php5、Lighttpd 1.下载各种PHP5需要的相关安装包(如jpeg8、libpng、freetype、zlib、GD库、curl、libxml2==),编译,安装,注意与服务器版本相同。 a.64位服务器对软件的编译: CFLAGS="-O3 -...

    phpLight(LightTPD+PHP集成包) v2014

    一次性安装无需再安装,即使重做系统后亦可使用,直接点启动即可。小巧简易迷你只有14M,非常方便的搭建网站服务器。有专门开发的控制面板进行控制程序的启停。phpLight 2014 包括以下组件:Lighttpd 1.4.32 服务器...

    lighttpd-1.4.20.tar

    lighttpd-1.4.20.tar lighttpd-1.4.20.tar

    lighttpd 主工作模式

    lighttpd 流程分析工作模式,帮助理解lighttpd

    varnish+lighttpd配置

    varnish+lighttpd配置

    lighttpd完全学习

    lighttpd完全学习,适合新手文档参考,ppt文件

    安卓系统lighttpd-php-mysql本地环境 v8.0.zip

    这是一个可在安卓手机上布置的服务器环境,功能组件包括:lighttpd、php和mysql,能成功运行DZ等php程序,安装和配置过程十分简单,也许现在该是讨论用什么手机做服务器更合适的时候了。  演示图片为一成功运行的...

Global site tag (gtag.js) - Google Analytics