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.