fastcgi bug when doing something a little tricky

proforg proforg at maloletka.ru
Sat Jul 5 20:55:56 MSD 2008


Hi !

On Sat, Jul 5, 2008 at 1:41 PM, Kingsley Foreman
<kingsley at internode.com.au> wrote:
>
> im not using a proxy however I have
>
> fastcgi_read_timeout            600;
>
> secondly the code on that page that i was testing was the one line of php to
> do the echo and the rest was just html i copy pasted from a random website.

Please check carefully access log for this virtual host - may be this
"random html" code loading some kind of images etc and these requests
are in turn processed by fastcgi ?

>
> Kingsley
>
> --------------------------------------------------
> From: "Dave Cheney" <dave at cheney.net>
> Sent: Saturday, July 05, 2008 5:29 PM
> To: <nginx at sysoev.ru>
> Subject: Re: fastcgi bug when doing something a little tricky
>
>> Check the value of
>>
>> proxy_read_timeout
>>
>> We've had sporadic issues with double posts to comments and other  'should
>> not happen' issues even though we've debounced all the buttons  for a while
>> now. Until now I've put it down to PEBKAC but thinking  about your issue I
>> wonder if its actually a problem with my config.  What could be happening is
>> your request is being queued on more than  one upstream. Even though nginx
>> discards the responses from backends  that is has timed out, that does not
>> roll back the effects of those  upstreams that have already processed the
>> request, and being a POST  request it is likely that it will be some kind of
>> database modification.
>>
>> I had a quick hack at constructing a config which will attempt GETS
>> multiple times and POSTS only once.
>>
>> location /controller/update {
>> if ($request_method == 'POST') {
>> break;
>> proxy_pass http://mongrel_post;
>> }
>> proxy_pass http://mongrel_get;
>> }
>>
>> upstream mongrel_get {
>> localhost:8080 fail_timeout=0;
>> localhost:8081 fail_timeout=0;
>> }
>>
>> upstream mongrel_post {
>> localhost:8080 max_fails=1 fail_timeout=0;
>> localhost:8081 max_fails=1 fail_timeout=0;
>> }
>>
>> Igor, could you see a need for a proxy configuration variable that  treats
>> Non-idempotent specially.
>>
>> Cheers
>>
>> Dave
>>
>> On 05/07/2008, at 4:29 PM, Kingsley Foreman wrote:
>>
>>> Hi folks,
>>>
>>> Ive just found a bug/feature when using fastcgi in a slightly  unusual
>>> manner.
>>>
>>> nginx version: nginx/0.6.31
>>>
>>> http://websiteurl/article.php
>>>
>>> works fine
>>>
>>> however if you do
>>>
>>> http://websiteurl/article.php/blah/blah
>>>
>>> It will still run article.php like i want it to do however depending  on
>>> the length of html the script it runs it multiple times
>>>
>>> eg. if I add
>>> exec("/bin/echo 1 >> /data/www/test");
>>> to the top of article.php and go to
>>>
>>> http://websiteurl/article.php
>>>
>>> it returns
>>> ___________________
>>> 1
>>> ___________________
>>>
>>> however if i go to
>>> http://websiteurl/article.php/1/
>>>
>>> it returns
>>> __________________
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> 1
>>> ___________________
>>>
>>> Its a bit of a problem for what im trying to do as i would ideally  like
>>> to have
>>> http://websiteurl/article/id/name/etc
>>> and have it process article as a php script
>>>
>>> Kingsley Foreman
>>> Technical Leader Content Services / Content Management Group
>>>
>>> =============================================
>>> Internode Systems Pty Ltd
>>>
>>> PO Box 284, Rundle Mall 5000
>>> Level 5 150 Grenfell Street, Adelaide 5000
>>> Phone:  +61 8 8228 2978
>>> Fax:    +61 8 8235 6978
>>> Web:    http://www.internode.on.net
>>>     http://games.internode.on.net
>>> =============================================
>>>
>>>
>>
>>
>>
>
>



-- 
Alexej Bestchiokov
EMail/JID: proforg at maloletka.ru
phone: +7 495 7853149





More information about the nginx mailing list