lighttpd
cft56200_ln
格拉德韦尔在《异数》:并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的锤炼,任何人都能从平凡变成超凡”。要成为某个领域的专家,需要10000小时:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。
展开
-
lighttpd IPV6 http重定向到https
Redirect http requests to httpsYou should add"mod_redirect"in server.modules array in/etc/lighttpd/lighttpd.conf:server.modules += ( "mod_redirect" )$SERVER["socket"] == ":80" { $HTTP["host"] =~ "example.org" { url.redirect = ( "^/(.*)" ...原创 2020-08-05 11:40:53 · 1006 阅读 · 0 评论 -
lighttpd 之十二 网络请求服务响应流程
10.1 概述 熟悉UNIX/Linux网络编程的读者知道,在编写网络通信程序的时候离不开这几个系统调用:如socket()、bind()、listen()、connect()、accept()、write()/read()、close()等。作为Web服务器网络应用程序,Lighttpd当然也毫不例外地要调用这些系统函数来接受客户端请求,提供资源服务。在第8章里,我们跳过了监听描...翻译 2018-12-24 17:47:54 · 9997 阅读 · 2 评论 -
lighttpd 如何解决react router的问题
一、rewrite和redirect的区别 参考:http://blog.51cto.com/19920309/1334449 参考:https://blog.csdn.net/caofengtao1314/article/details/81181067redirect,即重定向。rewrite,即重写,不仅仅可以实现redirect在url上的重定向,还可以直接重写请求道实际的文...原创 2018-12-18 18:35:54 · 507 阅读 · 0 评论 -
ubuntu lighttpd的权限认证模块 mod_auth
一、ubuntu安装lighttpd Ubuntu 16.04 官方仓库中包含了 Lighttpd,所以只需更新本地仓库索引并使用 apt-get 指令即可安装 Lighttpd。 二、设置lighttpd三、查看lighttpd所属进程①查看lighttpd所属用户组ps -aux|grep lighttpd 发现lighttpd所属用户组为www-data②查...原创 2018-11-30 17:39:52 · 1045 阅读 · 0 评论 -
使用lighttpd fcgi C语言设计符合restful api风格的配置
一、fcgi程序编写#include <fcgi_stdio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>char* getcgidata(FILE* fp, char* requestmethod) { char* input = NULL; ...原创 2018-10-22 17:23:30 · 2016 阅读 · 0 评论 -
lighttpd 之 十 一 插件链
1 概述 在Lighttpd应用程序中灵活的插件结构使用户可以轻易地修改服务器功能而不用改变Lighttpd的核心代码。多个插件的同时存在使Lighttpd应用程序必须以一种合理的方式组织和调用它们,以便用户可以简单地增加或减少加载的插件。本章内容就将以Lighttpd中最简单的mod_access插件为例子解析各个插件的共同结构以及插件与插件之间的组织方式。 本节相关部...翻译 2018-10-08 11:57:40 · 738 阅读 · 0 评论 -
lighttpd 之十 I/O多路复用技术模型
1 概述 随着互联网的迅速发展,网络服务质量的逐渐提升,越来越多的网站开始面临严重的性能降低、服务质量变差的压力。作为提供网络服务的主要软件,Web服务器必须选择合适的策略来足以承受当前的高负载连接。前面章节曾提到过,Lighttpd服务器程序从一开始就把服务性能放在首位来考虑,其良好的结构设计不仅使得Lighttpd应用服务程序策略方案容易扩展,而且可以平稳地运行在当前...翻译 2018-09-28 09:37:18 · 550 阅读 · 0 评论 -
lighttpd 之九 配置信息加载
1 概述 一个优秀的软件必须给予用户自由来针对其特有的环境条件做不同的设置,Lighttpd在这一方面做得非常不错,它提供用户足够的自由配置权力。用户使用Lighttpd时,可以根据自身的需求选择加载使用Lighttpd的不同功能插件、日志的记录方式、I/O多路复用技术类型、是否使用某些扩展库、对某些Web目录的访问权限设置等。如何以最简单明了的格式组织Lighttpd配置信息...翻译 2018-09-27 10:03:59 · 2932 阅读 · 0 评论 -
lighttpd 之八 文件状态缓存器
1 概述 在web server中,最重要的是保存在服务器里供客户端请求的文件资源,包括静态页面(如HTML文件、文本文件、world文件等)、动态文件(如PHP、JSP、ASP等)还有图片文件、声音视频多媒体文件等。存在于服务器上的这些文件又是动态变化的,比如某一时刻文件被删除或被修改,Web Server必须时刻知道这些变化的发生,才能对客户端的请求作出正确的响应。举个...翻译 2018-09-26 10:58:06 · 1085 阅读 · 0 评论 -
lighttpd 之七 日志系统
1 概述 此部分内容只涉及一个头文件和一个源文件,而且提供函数不多,但是其中的log_error_write函数在整个lighttpd源码中随处可见,因此这里将它放在前面来讲解。 本节相关部分源码: log.h log.c2 总结 lighttpd提供了三种记录日志的方式,分别是输出到标准错误,输出记录到用户设置的日志文件、...转载 2018-09-25 10:49:02 · 1158 阅读 · 0 评论 -
lighttpd 之六 伸展树
1.1 概述 伸展树或者分裂树,由Daniel Sleator和Robert Tarjan创造,它的优势在于不需要记录用于平衡树的冗余信息。伸展树是一种二叉排序树,它能再O(log n)内完成插入、查找和删除操作。lighttpd源码里关于伸展树的代码不多(对伸展树的操作只提供了4个函数),但是因为伸展树本身相对比较复杂,因此在此作为一章来解析,对伸展树理解较深的读者...转载 2018-09-25 09:29:16 · 218 阅读 · 0 评论 -
lighttpd 之五 数据结构
1.1 bitset数据结构 bitset数据结构提供对bit位操作的封装。提供对bit的置位操作,清位操作,测试位操作等常用位操作。 相关部分源码: bitset.h bitset.c 在高版本的lighttpd源码中已经删除。1.2 buffer数据结构 1.2.1 结构说明 ...转载 2018-09-17 12:35:01 · 334 阅读 · 0 评论 -
lighttpd1.4.49 之三 网络模型
转https://blog.csdn.net/in_han/article/details/9343025拿到lighttpd的源码就迫不及待的想去掉繁杂的皮肉以窥其简单的网络模型框架。我们平常所写的TCP网络服务程序离不开这样的步骤:新建socket ——》将socket绑定到某个地址——》侦听客户端连接——》accept获取已连接socket——》读写已连接socket。Lightt...转载 2018-08-02 11:49:22 · 369 阅读 · 0 评论 -
lighttpd1.4.49 之二 wachter worker模型
1.函数执行过程server.c----->main------->rc = server_main(srv, argc, argv);---->概述Lighttpd采用多进程网络服务模型。进程分两种:监控进程watcher 和 工作进程 workers。监控进程:fork工作进程并监视工作进程的数目,一旦有工作进程退出,监控进程立即fork新的工作进程。...原创 2018-08-01 18:00:05 · 382 阅读 · 0 评论 -
lighttpd1.4.49 之四 CGI执行流程
转:https://blog.csdn.net/lenky0401/article/details/4201713对于Lighttpd中CGI执行流程的多余文字不用过多说明,图片里已经基本说的很清楚了。从图中,我们可以看到对于客户端的每一个请求(动态页面,也就是需要CGI处理的),Lighttpd进程都是先fork一个CGI进程,然后将请求头(通过环境参数)和请求体(通过管道)传递给CGI...转载 2018-08-06 09:19:39 · 411 阅读 · 0 评论 -
lighttpd1.4.49 之一 如何创建守护进程
1.函数执行过程server.c----->main------->rc = server_main(srv, argc, argv);---->#ifdef HAVE_FORK /* network is up, let's daemonize ourself */ if (0 == srv->srvconf.dont_daemonize &...原创 2018-08-01 10:29:44 · 1120 阅读 · 0 评论