Apache2 使用 lighttpd 作为代理

Apache2 使用 lighttpd 作为代理

我使用 apache2 作为 Web 服务器。我想帮助他使用 lighttpd 作为静态内容的代理。不幸的是,我无法很好地设置 lighttpd 和 apache2。(操作系统:Debian)

lighttpd.config 中的重要内容:

server.modules              = ( 
            "mod_access",
            "mod_alias",
            "mod_accesslog",
        "mod_proxy",
        "mod_status",
 )


server.document-root       = "/www/"
server.port               = 82
server.bind                = "localhost"

$HTTP["remoteip"] =~ "127.0.0.1" {
    alias.url += ( 
        "/doc/" => "/usr/share/doc/",
        "/images/" => "/usr/share/images/"
    )
    $HTTP["url"] =~ "^/doc/|^/images/" {
        dir-listing.activate = "enable"
    }
}

我只想在一个站点上使用 lighttpd 作为 apache2 上的虚拟目录运行。此虚拟目录的配置:

ProxyRequests Off
ProxyPreserveHost On
ProxyPass /images http://0.0.0.0:82/
ProxyPass /imagehosting http://0.0.0.0:82/
ProxyPass /pictures http://0.0.0.0:82/
ProxyPassReverse / http://0.0.0.0:82/

ServerName MY_VALUES
ServerAlias www.MY_VALUES
UseCanonicalName Off
DocumentRoot /www/MYAPP/forum
<Directory "/www/MYAPP/forum">
DirectoryIndex index.htm index.php
    AllowOverride None 

...

正如您所见(或未见;))我的服务物理位于以下路径:

/ www / myapp / forum

并且我想支持lighttpd处理的文件夹:

/ www / myapp / forum / images
/ www / myapp / forum / imagehosting
/ www / myapp / forum / pictures

其余部分(PHP 脚本)留给 apache

运行 lighttpd 和 apache2 工作组后,没有显示这些位置的任何图像。出了什么问题?

答案1

我认为您的配置创建方式是错误的。使用您的配置,lighttpd 由 Apache httpd 代理,这没有多大意义,因为您的目标是利用 lighttpd 的(据称)更好的性能。

因此将 Apache httpd 绑定到另一个端口和接口(例如127.0.0.1:8080),然后让 lighttpd 的 mod_proxy 做这些脏活。

http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModProxy有关 lighttpd 的 mod_proxy 配置示例。

答案2

尝试在 apache 中更改这些行:

ProxyPass /images http://127.0.0.1:82/
ProxyPass /imagehosting http://127.0.0.1:82/
ProxyPass /pictures http://127.0.0.1:82/
ProxyPassReverse / http://127.0.0.1:82/

答案3

我不明白你为什么lighttpd.config有:

server.document-root       = "/www/"

这不应该和 Apache 一样吗?

server.document-root       = "/www/MYAPP/forum/"

或者我遗漏了什么?

您可能还想删除alias.url的条目images,因为这也会破坏某些东西。

相关内容