`
pingfeng
  • 浏览: 59274 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

文件上传遇到诡异问题,lighttpd不能正确转发,返回一个http 301,Robbin好像提到过

阅读更多
应用场景:

上传图片(post /photos),走不到rails的create action。用webrick正常。


观察lighttpd日志,转发给rails的dispatch.fcgi,返回的基本是302(临时重定向),这些post都没有问题。

但上传图片时,返回302,0字节。浏览器拿了302就自动的、错误的去get /photos。

记得Robbin提到过rails在fcgi方式下文件上下载的一个bug,还说是一个可耻的bug,一直不修复。


环境:linux

lighttp日志:

12142 121.35.75.46 baicaonet.com - [22/Feb/2009:17:30:19 +0800] "POST /photos HTTP/1.1" 301 0 "http://baicaonet.com/photos/new?id=1&type=Album" "Mozilla/4.0 (compa        tible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1)"


forefix自动去get,非正常业务逻辑
12143 121.35.75.46 baicaonet.com - [22/Feb/2009:17:30:19 +0800] "GET /photos/ HTTP/1.1" 404 607 "http://baicaonet.com/photos/new?id=1&type=Album" "Mozilla/4.0 (com        patible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1)"

12144 121.35.75.46 baicaonet.com - [22/Feb/2009:17:33:33 +0800] "GET /photos/new?id=1&type=Album HTTP/1.1" 304 0 "http://baicaonet.com/albums/1" "Mozilla/4.0 (comp        atible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1)"

webrick则正常

121.35.75.46 - - [22/Feb/2009:16:59:55 CST] "POST /photos HTTP/1.1" 302 100
http://baicaonet.com:3000/photos/new?id=1&type=Album -> /photos

正常业务逻辑,成功后看查看
121.35.75.46 - - [22/Feb/2009:16:59:59 CST] "GET /photos/4 HTTP/1.1" 200 6834
http://baicaonet.com:3000/photos/new?id=1&type=Album -> /photos/4
121.35.75.46 - - [22/Feb/2009:17:00:00 CST] "GET /images/new/share.gif HTTP/1.1" 200 137

分享到:
评论
2 楼 pingfeng 2009-02-23  
config:
server.document-root = "/srv/www/baicao/trunk/public"

fastcgi.debug = 1

fastcgi.server = (

    ".fcgi" => (

        "localhost" => (

            "min-procs" => 1,

            "max-procs" => 5,

            "socket" => "/var/run/lighttpd/rails.socket",

            "bin-path" => "/srv/www/baicao/trunk/public/dispatch.fcgi"

        )

    )

)

配置应该没有什么问题,这个环境已经跑了一段时间了,之前工作正常。

目前,问题的是:lighty返回了301, http头里的 location: /photos

正常应返回302 location:/photos/4

=======================================

所以现在问题不好界定,从对比实现来看好像rails没问题,不用lighttpd都是正常的。

但lighttpd不可以“造”出一个“/photos”,所以推测还是rails返回的。但post /photos rails确实没有调用到create这个方法。

Robbin你觉得是否可以在rails fastcgi这个地方定位,找信息。

=====================

记得你讲过一个rails文件下载的一个bug,想再学习一下,谢谢!



1 楼 robbin 2009-02-23  
摆明你的lighttpd配置的有问题呗。

相关推荐

    修复CGI无法通过html传递参数表问题的lighttpd

    在lighttpd-1.4.26版本的问题中,可能是由于服务器在处理POST请求时,没有正确地将表单数据转换为环境变量,或者是CGI配置文件存在问题,导致CGI脚本无法访问这些关键参数。这会阻碍CGI应用程序的正常运行,尤其是...

    搭建lighttpd+cgi的代码包

    本教程将详细介绍如何使用lighttpd和CGI来搭建一个动态网页服务器。 1. **理解lighttpd** lighttpd是一个快速、安全且配置简单的HTTP服务器,特别适合于资源有限的环境。它的特性包括模块化设计、高性能的事件模型...

    web_share:通过Lighttpd分享文件,实现上传下载

    web_share通过Lighttpd分享文件,实现上传下载为什么用Lighttpd?因为它安装包小……为什么这么简陋?因为我菜。欢迎提PR来帮助我改进。这个项目意义何在?帮助不同设备之间传输文件。举个例子:手机和电脑要传文件...

    lighttpd配置和启动脚本

    5. **配置文件验证**:在启动前,使用`lighttpd -t -f /path/to/lighttpd.conf`命令验证配置文件的正确性,确保服务能顺利启动。 以上就是lighttpd配置文件和启动脚本的基本介绍。在实际部署和运维过程中,需要根据...

    lighttpd+php in android

    在Android平台上运行Web服务是一个独特的挑战,因为它是一个主要用于移动设备的操作系统。然而,通过将轻量级HTTP服务器lighttpd与PHP集成,我们能够在Android设备上构建一个小型但功能强大的Web环境。以下是对...

    Lighttpd源码分析

    Lighttpd是一个轻量级的Web服务器,它在性能和资源使用上表现出色,被广泛应用于需要高性能、低资源占用的场景中。对于从事网络编程和服务器开发的专业人士来说,源码分析是一个深入了解和优化服务器行为、提升性能...

    varnish+lighttpd配置

    这个例子中,Varnish将所有请求转发到本地的8080端口(Lighttpd监听的端口),并且不缓存带有“username”Cookie的请求。 3. **安装Lighttpd** 使用以下命令安装Lighttpd: ``` sudo apt-get install lighttpd ...

    最新lighttpd源码 lighttpd-1.4.22

    Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是...

    lighttpd 安装配置

    在Lighttpd安装目录下的`doc`目录中,有一个示例配置文件`lighttpd.conf`,可以将其复制到`conf`目录,并进行编辑: ``` mkdir conf cp /path/to/lighttpd-1.4.8/doc/lighttpd.conf /usr/local/lighttpd/conf/ ``` ...

    用于ROR应用的lighttpd配置模板

    Lighttpd是一个轻量级、高效的Web服务器,尤其适合处理动态内容,如Rails应用。"用于ROR应用的lighttpd配置模板"提供了一个预设的配置,帮助开发者快速配置lighttpd以支持Rails环境。 Lighttpd以其低内存占用和高...

    lighttpd-1.4.20-cmake

    在互联网服务领域,HTTP服务器是不可或缺的一部分,它们负责处理来自客户端的HTTP请求并返回相应的网页内容。其中,lighttpd因其轻量、高效、安全的特点,成为许多小型网站和开发环境的首选。本文将深入探讨lighttpd...

    lighttpd with H264 support

    通过正确应用补丁和配置,lighttpd可以有效地处理H264编码的MP4文件,为用户提供流畅的在线播放体验,包括快进等高级功能。这一过程需要一定的技术背景和对lighttpd操作的理解,但一旦完成,将极大地提升你的Web服务...

    lighttpd restfulapi cgi

    【标题】"lighttpd RESTful API与CGI的整合" 在Web开发中,轻量级HTTP服务器(如lighttpd)因其高效、低资源占用而受到青睐,尤其适合小型和中型项目。RESTful API设计模式是现代Web服务的重要组成部分,它允许通过...

    lighttpd代码阅读资料

    《lighttpd代码阅读资料详解》 ...通过对源码的深入探索,开发者不仅能掌握lighttpd的工作机制,还能提升自己的编程技能和解决问题的能力。在实践中不断学习和积累,是成为一名优秀的lighttpd开发者的关键。

    lighttpd-1.4.39.tar.gz

    其1.4.39版本是lighttpd发展中的一个重要里程碑,为用户提供了一个稳定且功能强大的服务环境。本文将深入探讨lighttpd的特性、安装与配置,并结合1.4.39版的特点,解析其在实际应用中的优势。 一、lighttpd概述 ...

    lighttpd代替apache

    然而,Apache的预fork模型在处理高并发请求时可能会遇到资源消耗大的问题,每个进程只能服务于一个HTTP连接,导致在高负载下需要启动大量进程,从而占用大量内存和CPU资源。 相比之下,lighttpd是一个轻量级的Web...

    lighttpd-1.4.45_lighttpd服务器_

    lighttpd-1.4.45是lighttpd服务器的一个重要版本,它以其小巧、安全的特性,为开发者和嵌入式平台提供了一种高效的服务选择。 lighttpd,顾名思义,强调的是“轻”——轻量级、低资源消耗。它的设计目标是提供一个...

    lighttpd的权限认证模块 mod_auth

    **lighttpd的权限认证模块 mod_auth** 在Web服务器领域,lighttpd以其轻量级、高效能的特点受到许多开发者和管理员的青睐。它提供了一系列模块来扩展其功能,其中`mod_auth`就是用于实现HTTP基本认证和摘要认证的...

    lighttpd-1.4.30.tar.gz

    lighttpd的日志默认保存在`/var/log/lighttpd/`目录下,通过分析这些日志文件,可以快速定位和解决运行过程中遇到的问题。 9. **模块化设计** lighttpd支持模块化扩展,可以根据需求选择安装和启用不同的模块,如...

Global site tag (gtag.js) - Google Analytics