Articles of lighttpd

如何通过单个端口处理encryption和未encryption的http连接

请看下面的图表。 替代文字http://i30.tinypic.com/8wk4tt.png 这个怎么工作? 当远程请求http:// myhost.com:8080/*时,请求应该被转发到监听回送接口的8008端口的http服务器。 这是简单的部分。 当远程用户请求http:// myhost.com:8080/specialurl … 充当应用程序级别网关的程序应该能够将连接升级到encryption会话( 不更改端口 ) 在与远程浏览器build立encryption会话之后,它应该将请求转发到C程序,该程序侦听回送接口的8000端口 我的问题是 : 你有没有在生产环境中部署这样的解决scheme? 如果你有… 你用什么产品作为应用程序网关? 你能提供一个configuration例子吗? 硬限制 : 我没有防火墙的控制权 ,通过它我可以获得外部stream量进入内部服务器的唯一端口是8080.端口号是无关紧要的,只是有一个端口在防火墙级别打开,转发传入stream量到内部服务器。 内部服务器必须运行Linux(目前正在运行Debian Lenny) 远程用户只需要使用当前的Web浏览器和Internet连接即可访问此服务器。 这意味着通过SSH的反向端口转发不是一个选项。 我需要一个经过生产testing的产品,并且可以很容易地部署。 我不打算开发自己的应用程序网关 (如果是这样的话,我想我会问在堆栈溢出这个问题,而不是在服务器故障问)。 软限制 : 我想避免将Apache作为应用程序网关(尽pipe如果这是唯一可能的select,我愿意这样做) 如果可能的话,应用程序网关应该是一个成熟的开源软件产品。 产品尝试到应用程序网关 (没有成功) nginx的 lighttpd的 磅 相关的RFC RFC2817(… 解释了如何使用HTTP / 1.1中的升级机制来通过现有的TCP连接启动传输层安全性(TLS),这使得不安全和安全的HTTPstream量可以共享相同的已知端口 …) RFC2818(… 描述了如何使用TLS来保护通过Internet的HTTP连接。目前的做法是将HTTP over SSL(TLS的前身)分层,通过使用不同的服务器端口来区分安全stream量和不安全stream量 。 ) 在此先感谢,亚历克斯

即使在磁盘上进行修改,如何防止lighttpdcaching静态文件?

我正在使用lighttpd来提供静态文件。 我在一个定期更新的目录中有一堆图像。 这将改变文件内容(和文件大小)以及修改date,但不改变它们的文件名。 当我通过http访问这些文件时,不会考虑这些更新,并且轻微地服务于旧文件。 我可以手动将文件重命名为不同的东西,然后lighttpd将返回一个404错误,如果我重新命名我的文件,我会得到正确的更新版本。 看起来像lightty正在使用它自己的某种caching机制(这很好)来返回静态文件。 不幸的是,这种机制似乎并没有在文件被修改时自行更新。 我通过Wireshark进行了检查,我的浏览器确实在对文件进行请求,这不是浏览器caching问题。 当它从一个空的caching请求时,它会返回一个200 OK,如果没有,则返回304 Not Modified。 但是该文件返回错误的Last-Modified标头,并不能反映真正的最后修改date。 也许有一些我不知道的configuration指令? 我希望Lighty返回的文件直接反映磁盘上的更改,或者至less能够使caching失效。 更新下面这个问题的人:我find了一个罪魁祸首。 如果我更新一个静态文件,Lighty不会返回新的内容,但是会在其头部返回新的Content-Length,导致垃圾显示。 如果我使用mod_compress压缩文件,问题就会消失,因为mod_compress使用自己的caching系统。 不幸的是,我不能压缩所有的文件(例如图像文件)。 所以这只是一个部分的解决方法,但我会在稍后再回来,并且会很好地find一个解决scheme。

限制上传文件大小,并将用户redirect到错误页面,如果超过限制

是否有可能将用户redirect到file too big页面 当POST请求大小超过指定的限制? 我知道max-request-size选项,但是它只给出了不能被重载的静态页面。 我想创build一个重写规则 内容大小从请求主体作为input并redirect到错误页面 UPDATE 现在我们使用nginx作为前端。 有什么新build议?

Apache MPMs – 工人vs Prefork

我试图找出哪些是我可以安装在我的VPS上的最好的Apache MPM。 我看到了一些基准,MPM Worker似乎比Prefork更好,但出于某种原因,似乎每个人似乎都推荐了Prefork for Worker来安装PHP。 这只是因为一些PHP函数不是线程安全的? 想起来只有setlocale() ,但是我将在每个实例上使用相同的语言环境,所以我不认为这会是一个问题。 我的VPS有一点记忆,我觉得工人MPM会更适合我的需求,但是我不确定。 有人可以帮我下定决心吗? 谢谢! PS:我也看过nginx和lighttpd。 nginx看起来很棒,但我试图避免从源代码编译,我仍然不明白什么是PHP-FPM。 关于lighttpd – 使用它设置PHP / FCGI令人难以置信,但我听说它有内存泄漏。 这是真的吗?

如何正确启用lighttpd错误日志?

我有一个启用Lighttpd和fastcgi的Centos 5系统。 它logging访问,但不logging错误。 我有内部服务器错误500和日志中没有信息,当我尝试打开不存在的文件也没有错误日志中的信息。 如何正确启用它? 以下是我启用的模块列表: server.modules = ( "mod_rewrite", "mod_redirect", "mod_alias", # "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", "mod_status", "mod_setenv", "mod_fastcgi", # "mod_webdav", # "mod_proxy_core", # "mod_proxy_backend_fastcgi", # "mod_proxy_backend_scgi", # "mod_proxy_backend_ajp13", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) […]

curlPOST – 411长度要求

我们有一个我们用PHP构build的RestFUL API。 如果我们提出要求: curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST 我们回来: 411 – Length Required 虽然如果我们简单地将-d ""添加到请求的工作中,并且没有411错误。 有没有办法不需要添加-d到curl命令? 我们正在使用lighttpdnetworking服务器,并相信它的lighttpd不是PHP谁返回411错误。

使用nginx使用单个端口处理http和https请求

我想知道如果nginx能够处理http和https请求在同一个端口 。 [*] 这就是我想要做的。 我正在运行处理http请求的web服务器(lighttpd),以及一个通过https服务文档树的特定部分的C程序。 这两个进程在同一台服务器上运行。 在防火墙级别, 我只能有一个端口将stream量转发到此服务器 。 所以我想要做的就是在这个服务器上设置nginx,以便它监听单个端口上的请求,然后: A)redirect所有http://myhost.com/ *请求,以便它们转到localhost:8080(lighttpd正在侦听) B)如果用户请求以https:// myhost.com/app开头的URL,则将该请求发送到localhost:8008(C程序)。 请注意,在这种情况下,远程浏览器和nginx之间的stream量必须encryption。 你认为这可能吗? 如果是这样,怎么办? 我知道如何使用两个不同的端口来做到这一点。 我面临的挑战是只用一个端口(不幸的是,我无法控制这个特定环境的防火墙configuration,所以这是我无法避免的限制)。 使用像通过ssh的反向端口技术绕过防火墙的技术也将无法正常工作,因为这应该适用于远程用户只有一个Web浏览器和互联网链接。 如果这超出了nginx的能力,你是否知道任何其他能满足这个要求的产品? (到目前为止,我已经用lighttpd和英镑设置这个不成功)。 我也更喜欢避免Apache(尽pipe我愿意使用它,如果它是唯一可能的select)。 在此先感谢,亚历克斯 [*]要清楚,我正在谈论通过同一个端口处理encryption和未encryption的HTTP连接。 encryption是通过SSL还是TLS完成并不重要。

为什么Nginx和Lighttpd不受Slowloris的影响?

我正在调查Slowloris的漏洞,我想我明白这种攻击是如何以及为什么会起作用的。 我不明白的是为什么Lighttpd和NginX不受影响(根据上面链接的同一篇文章)。 他们做了什么如此不同?

哪个最适合Django? Lighttpd还是Nginx? 或者也许别的东西?

Lighttpd和Nginx是基于你的经验,更适合Django的? 我已经使用了两者,几乎没有发现任何区别,他们只是工作正常…有什么用例,当他们中的一个比另一个好得多? 在回答时请兼顾configuration的简单性和效率。 我通常的设置是通过daemontools或init.d脚本启动一个单独的Django FCGI进程(如在./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1中./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1 ),lighty / nginx充当反向代理。 哦,如果你觉得其他一些http服务器对于Django来说比Lighty和Nginx要好的多,请不要犹豫分享你的想法。

为什么Nginx比lighttpd更受欢迎?

我想在生产中使用Lighttpd来提供Django应用程序,但是现在看来,Nginx越来越stream行了。 这是为什么? 我知道在过去Lighttpd有内存泄漏,但现在不是这个固定的? 他们确实有活跃的开发人员来解决这种事情,不是吗? 有什么理由我应该用Nginx而不是Lighty? 我知道nginx是一个很好的服务器,但它真的比lighty更好,更好吗?