以lighttpd作为代理的Apache2

我使用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上的虚拟目录。 这个虚拟目录的configuration:

 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 

正如你所看到的(或不是;))我的服务实际上位于path:

 / www / myapp / forum 

我想支持lighttpd处理文件夹:

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

剩下的(PHP脚本)为Apache

运行lighttpd和apache2工作组后,却没有显示出这些位置的任何图像。 哪里不对?

恕我直言,你创build你的configuration错误的方式。 在你的configuration中,lighttpd是由Apache httpd代理的,因为你的目标是利用lighttpd的(据说是)更好的性能,所以没什么意义。

所以绑定Apache httpd到另一个端口和接口(例如127.0.0.1:8080 ),让lighttpd的mod_proxy做脏工作。

有关lighttpd的mod_proxy的configuration示例,请参阅http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModProxy

尝试在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/ 

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

 server.document-root = "/www/" 

难道不应该和Apache一样吗?

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

还是我错过了什么?

另外,您可能还想删除imagesalias.url条目,因为这也会破坏images