lighttpd源碼分析-分析背景-模型介紹

分析背景

最近需要在嵌入式設備路由器上運行lighttpd,主要需要使用它的proxy代理功能,實現http流量代理到自己服務器上。
並且由於配置一個域名的代理配置文件如下:

$HTTP["host"] == "www.baidu.com" {                   
    proxy.forwarded = (                                      
        "for" => 0
    ),                                                       
    proxy.header = (                                         
        "map-host-request" => (                              
                "www.baidu.com" => "www.test.com"
        ),                                      
        "map-urlpath" => (                                    
                "/" => "/www.baidu.com/"              
        )                                                     
    ),                                                        
    proxy.server = (                                          
        "" => (                                               
            (                                                 
                "host" => "www.test.com",                 
                "port" => 80                                  
            )                                                 
        )                                                     
    )                                                         
}

在實際業務場景中,我們需要代理的需要肯定是會需要成百上千個,這在有限資源的路由器上是不友好的。因此,我覺得有必要進行配置的改造,避免重複不需要的字符而佔用系統內存。目標配置格式如下:

server=www.test.com:80
host=www.baidu.com
host=www.qq.com

當然要進去上述改造,我們需要對lighttpd的源碼有一定的整體瞭解,因此,有了此次分析。

lighttpd 源碼模型

lighttpd 採用 watcher and worker的運行模式。由一個watcher產生並監控 多個worker運行的方式,這一點跟nginx項目是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章