Forum: Rails deployment IIS + Apache + Mongrel: Problem with big data submit form

Posted by Trung Do (trungdo)
on 2010-01-07 19:56
Hi all,

I deployed a Rails application on a Windows Server 2003 machine as
follows:

 + I created two instances of Mongrel at ports 4001, 4002 to serve the
application

 + I set up an Apache instance at port 8080 for balancing load for the
two Mongrels => So I can access my website at URL http://mywebsite:8080/

 + I want to allow users access my website without typing port 8080 in
the URL. However, the server already runs IIS for several other
web-sites at default port 80. Therefore, I used ISAPI Rewrite to forward
requests from IIS (at port 80) to the Apache (and therefore towards the
Mongrels) => I can access the website at URL http://mywebsite/

(To do these steps, I followed the guide in book Deploying Rails
Application - Pragmatic Bookshelf)

Everything seems to work fine until I find out the following problem:

In my application, the user register form page allows user to upload
his/her avatar. But whenever the file size is bigger than ~30KB, the
browser keeps waiting for response from the server until getting timeout
error.

This error also occurs in any submitting form with a little big posted
data.

* Looking at the Apache error log file, I got the following error:
------------------
[error] proxy: pass request body failed to 127.0.0.1:4001
------------------
=> Apache seems to fail to forward request to Mongrel instance

* Looking at the Mongrel log file, I got the following error:
------------------
Error reading HTTP body: #<RuntimeError: Socket read returned
insufficient data
------------------
=> Mongrel seems not to receive fully the data whose length specified in
Content-Length attribute in the request header.

One special thing is that this error just happens when I access the
web-site via IIS, i.e., http://mywebsite. This does not happen when I
try directly with Apache at http://mywebsite:8080 or Mongrel at
http://mywebsite:4001/(4002)

So I think there may be something wrong at the point of forwarding
requests from IIS to Apache using ISAPI Rewrite, maybe related to max
request length or something. But I totally get stuck at that so far.

Please help if you have any suggestion to solve this problem.

Thank you!

Best regards,

.Viet Trung.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.