新闻  |   论坛  |   博客  |   在线研讨会
适用于嵌入式系统的web server:thttpd的介绍与使用
电子禅石 | 2021-10-21 12:58:17    阅读:1850   发布文章

httpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图+Benchmark,可以参考参考。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。


thttpd支持多种平台,如FreeBSD, SunOS, Solaris, BSD, Linux, OSF等。对于小型web server而言,速度快似乎是一个代名词,通过官方站提供的Benchmark,可以这样认为:thttpd至少和主流的web server一样快,在高负载下更快,因为其资源占用小的缘故。


thttpd还有一个较为引人注目的特点:基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。


 


官网:http://www.acme.com/software/thttpd/


 


测试环境:Ubuntu gnome(16.04)版 + win10  (win10上运行Ubuntu虚拟机)


 


1. 下载


wget http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz


tar -zxvf thttpd-2.29.tar.gz


cd thttpd-2.29/


 


 


2. 编译&安装


./configure


make


sudo make install


 


注:


1)在执行sudo make install时会提示以下错误:


chgrp: invalid group: ‘www’


Makefile:70: recipe for target 'install' failed


make[1]: *** [install] Error 1


make[1]: Leaving directory '/home/baoli/tools/thttpd/thttpd-2.29/extras'


Makefile:121: recipe for target 'installsubdirs' failed


make: *** [installsubdirs] Error 2


需要添加www组:


sudo addgroup www


 


 


3. 配置


3.1 复制配置文件thttpd.conf


cd /usr/local/www/


sudo mkdir thttpd


sudo cp ./contrib/redhat-rpm/thttpd.conf  /usr/local/www/thttpd/


baoli@ubuntu:~/tools/thttpd/html$ cat /usr/local/www/thttpd/thttpd.conf


# This section overrides defaults

dir=/home/httpd/html

chroot

user=httpd# default = nobody

logfile=/var/log/thttpd.log

pidfile=/var/run/thttpd.pid

# This section _documents_ defaults in effect

# port=80

# nosymlink# default = !chroot

# novhost

# nocgipat

# nothrottles

# host=0.0.0.0

# charset=iso-8859-1

 


3.2 修改配置文件thttpd.conf


baoli@ubuntu:~/tools/thttpd/html$ cat /usr/local/www/thttpd/thttpd.conf


# This section overrides defaults

dir=/home/httpd/html

chroot

user=httpd# default = nobody

logfile=/var/log/thttpd.log

pidfile=/var/run/thttpd.pid

# This section _documents_ defaults in effect

# port=80

# nosymlink# default = !chroot

# novhost

# nocgipat

# nothrottles

# host=0.0.0.0

# charset=iso-8859-1

改为:


# This section overrides defaults

dir=/home/baoli/tools/thttpd/html

chroot

user=baoli# default = nobody

logfile=/var/log/thttpd.log

pidfile=/var/run/thttpd.pid

# This section _documents_ defaults in effect

# port=80

# nosymlink# default = !chroot

# novhost

# nocgipat

# nothrottles

# host=0.0.0.0

# charset=iso-8859-1

 


1)dir=/home/baoli/tools/thttpd/html,存放供用户访问的html文件


baoli@ubuntu:~/tools/thttpd/html$ ls


amber.png    gcov      glass.png   index-sort-f.html  ruby.png  updown.png


emerald.png  gcov.css  index.html  index-sort-l.html  snow.png


2)user=baoli# default = nobody,修改为一个有效用户


 


 


4. 测试


4.1 启动server


sudo thttpd -C /usr/local/www/thttpd/thttpd.conf


 


4.2 测试


1)Ubuntu


在浏览器输入:


http://127.0.0.1/


或者http://192.168.0.104/  (Ubuntu IP)




 


2)windows


在浏览器输入:


http://192.168.0.104/ 


 


 

————————————————

版权声明:本文为CSDN博主「crazy_baoli」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u012247418/article/details/90137417


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客