Nginx and fcgiwrap, incremental output problemsApache2/fastcgi/php fastcgi/haproxy - graceful restart problems changing configuration settingsIn Nginx, how can I rewrite all http requests to https while maintaining sub-domain?Why do I need Nginx and something like Gunicorn?perl app on apache and cgi behaves terribly with 504 gateway timeoutsnginx + fcgiwrap: how come order of fastcgi_param matters?How to debug CGI over fcgiwrap/nginxAsync ignored on AJAX requests on Nginx serverNginx error: “Primary script unknown” while reading response header from upstreamNginx wrong path for include file in CodeIgniterCan't change NGINX timeout
Coloring lines in a graph the same color if they are the same length
amsmath: How can I use the equation numbering and label manually and anywhere?
Does attacking (or having a rider attack) cancel Charge/Pounce-like abilities?
What defines a person who is circumcised "of the heart"?
Real Analysis: Proof of the equivalent definitions of the derivative.
Anatomically correct Guivre
Why is Ni[(PPh₃)₂Cl₂] tetrahedral?
nginx conf: http2 module not working in Chrome in ubuntu 18.04
Ribbon Cable Cross Talk - Is there a fix after the fact?
Illustrating that universal optimality is stronger than sphere packing
What is this dime sized black bug with white on the segments near Loveland Colorodao?
Which values for voltage divider
Unpreventable damage to Gideon, the Oathsworn
Was murdering a slave illegal in American slavery, and if so, what punishments were given for it?
Does science define life as "beginning at conception"?
Salesforce bug enabled "Modify All"
How can I reduce the size of matrix?
Efficient Algorithms for Destroyed Document Reconstruction
VHDL: Why is it hard to desgin a floating point unit in hardware?
JavaScript: Access 'this' when calling function stored in variable
Surface of the 3x3x3 cube as a graph
Variable does not Exist: CaseTrigger
If I arrive in the UK, and then head to mainland Europe, does my Schengen visa 90 day limit start when I arrived in the UK, or mainland Europe?
Nunc est bibendum: gerund or gerundive?
Nginx and fcgiwrap, incremental output problems
Apache2/fastcgi/php fastcgi/haproxy - graceful restart problems changing configuration settingsIn Nginx, how can I rewrite all http requests to https while maintaining sub-domain?Why do I need Nginx and something like Gunicorn?perl app on apache and cgi behaves terribly with 504 gateway timeoutsnginx + fcgiwrap: how come order of fastcgi_param matters?How to debug CGI over fcgiwrap/nginxAsync ignored on AJAX requests on Nginx serverNginx error: “Primary script unknown” while reading response header from upstreamNginx wrong path for include file in CodeIgniterCan't change NGINX timeout
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
When I run a cgi script under Apache any output is rapidly sent to the client. However when I run it under nginx with fcgiwrap it seems nothing is sent to the client until the script either finishes or produces a lot of output. In particular when using git-http-backend this leads to gateway timeouts on cloning large repositories (and lack of progress information on cloning smaller ones).
This behaviour can be seen with the following script.
#!/bin/bash
echo "Content-type: text/html"
echo
while :
do
echo this is a test.
sleep 5
done
Under apache the client will get some data every 5 seconds.
Under nginx with fcgiwrap I get no data and a gateway timeout.
nginx and fcgiwrap are packages from Debian Jessie. Versions 1.1.0-5 and 1.6.2-5+deb8u4
So the questions
- Does anyone know which is responsible for this behaviour? nginx itself? fcgiwrap? both?
- Is it something that can be fixed through configuration?
- If it's a fcgiwrap problem are there alternative cgi wrappers available that don't suffer the problem?
nginx fastcgi cgi
add a comment |
When I run a cgi script under Apache any output is rapidly sent to the client. However when I run it under nginx with fcgiwrap it seems nothing is sent to the client until the script either finishes or produces a lot of output. In particular when using git-http-backend this leads to gateway timeouts on cloning large repositories (and lack of progress information on cloning smaller ones).
This behaviour can be seen with the following script.
#!/bin/bash
echo "Content-type: text/html"
echo
while :
do
echo this is a test.
sleep 5
done
Under apache the client will get some data every 5 seconds.
Under nginx with fcgiwrap I get no data and a gateway timeout.
nginx and fcgiwrap are packages from Debian Jessie. Versions 1.1.0-5 and 1.6.2-5+deb8u4
So the questions
- Does anyone know which is responsible for this behaviour? nginx itself? fcgiwrap? both?
- Is it something that can be fixed through configuration?
- If it's a fcgiwrap problem are there alternative cgi wrappers available that don't suffer the problem?
nginx fastcgi cgi
add a comment |
When I run a cgi script under Apache any output is rapidly sent to the client. However when I run it under nginx with fcgiwrap it seems nothing is sent to the client until the script either finishes or produces a lot of output. In particular when using git-http-backend this leads to gateway timeouts on cloning large repositories (and lack of progress information on cloning smaller ones).
This behaviour can be seen with the following script.
#!/bin/bash
echo "Content-type: text/html"
echo
while :
do
echo this is a test.
sleep 5
done
Under apache the client will get some data every 5 seconds.
Under nginx with fcgiwrap I get no data and a gateway timeout.
nginx and fcgiwrap are packages from Debian Jessie. Versions 1.1.0-5 and 1.6.2-5+deb8u4
So the questions
- Does anyone know which is responsible for this behaviour? nginx itself? fcgiwrap? both?
- Is it something that can be fixed through configuration?
- If it's a fcgiwrap problem are there alternative cgi wrappers available that don't suffer the problem?
nginx fastcgi cgi
When I run a cgi script under Apache any output is rapidly sent to the client. However when I run it under nginx with fcgiwrap it seems nothing is sent to the client until the script either finishes or produces a lot of output. In particular when using git-http-backend this leads to gateway timeouts on cloning large repositories (and lack of progress information on cloning smaller ones).
This behaviour can be seen with the following script.
#!/bin/bash
echo "Content-type: text/html"
echo
while :
do
echo this is a test.
sleep 5
done
Under apache the client will get some data every 5 seconds.
Under nginx with fcgiwrap I get no data and a gateway timeout.
nginx and fcgiwrap are packages from Debian Jessie. Versions 1.1.0-5 and 1.6.2-5+deb8u4
So the questions
- Does anyone know which is responsible for this behaviour? nginx itself? fcgiwrap? both?
- Is it something that can be fixed through configuration?
- If it's a fcgiwrap problem are there alternative cgi wrappers available that don't suffer the problem?
nginx fastcgi cgi
nginx fastcgi cgi
edited May 8 at 14:21
Peter Green
asked May 27 '17 at 11:40
Peter GreenPeter Green
3,026625
3,026625
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Ok, figured it out. It seems both nginx and fcgiwrap have undesirable buffering in place. For nginx it seems it can be disabled through configuration while fcgiwrap needs a patch.
I have posted a debdiff for fcgiwrap at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863478 this adds a new option NO_BUFFERING
(update: Debian has now applied said patch, so if you are running Debian Buster or later you don't need to apply it yourself).
Then the nginx configuration needs changing to pass the NO_BUFFERING option to fcgiwrap and to disable buffering inside nginx.
To do this I added some settings immediately before and after the "include fastcgi_params;" line.
#note: NO_BUFFERING relies on a patched fcgiwrap.
fastcgi_param NO_BUFFERING 1;
include fastcgi_params;
gzip off;
fastcgi_buffering off;
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f852564%2fnginx-and-fcgiwrap-incremental-output-problems%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Ok, figured it out. It seems both nginx and fcgiwrap have undesirable buffering in place. For nginx it seems it can be disabled through configuration while fcgiwrap needs a patch.
I have posted a debdiff for fcgiwrap at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863478 this adds a new option NO_BUFFERING
(update: Debian has now applied said patch, so if you are running Debian Buster or later you don't need to apply it yourself).
Then the nginx configuration needs changing to pass the NO_BUFFERING option to fcgiwrap and to disable buffering inside nginx.
To do this I added some settings immediately before and after the "include fastcgi_params;" line.
#note: NO_BUFFERING relies on a patched fcgiwrap.
fastcgi_param NO_BUFFERING 1;
include fastcgi_params;
gzip off;
fastcgi_buffering off;
add a comment |
Ok, figured it out. It seems both nginx and fcgiwrap have undesirable buffering in place. For nginx it seems it can be disabled through configuration while fcgiwrap needs a patch.
I have posted a debdiff for fcgiwrap at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863478 this adds a new option NO_BUFFERING
(update: Debian has now applied said patch, so if you are running Debian Buster or later you don't need to apply it yourself).
Then the nginx configuration needs changing to pass the NO_BUFFERING option to fcgiwrap and to disable buffering inside nginx.
To do this I added some settings immediately before and after the "include fastcgi_params;" line.
#note: NO_BUFFERING relies on a patched fcgiwrap.
fastcgi_param NO_BUFFERING 1;
include fastcgi_params;
gzip off;
fastcgi_buffering off;
add a comment |
Ok, figured it out. It seems both nginx and fcgiwrap have undesirable buffering in place. For nginx it seems it can be disabled through configuration while fcgiwrap needs a patch.
I have posted a debdiff for fcgiwrap at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863478 this adds a new option NO_BUFFERING
(update: Debian has now applied said patch, so if you are running Debian Buster or later you don't need to apply it yourself).
Then the nginx configuration needs changing to pass the NO_BUFFERING option to fcgiwrap and to disable buffering inside nginx.
To do this I added some settings immediately before and after the "include fastcgi_params;" line.
#note: NO_BUFFERING relies on a patched fcgiwrap.
fastcgi_param NO_BUFFERING 1;
include fastcgi_params;
gzip off;
fastcgi_buffering off;
Ok, figured it out. It seems both nginx and fcgiwrap have undesirable buffering in place. For nginx it seems it can be disabled through configuration while fcgiwrap needs a patch.
I have posted a debdiff for fcgiwrap at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863478 this adds a new option NO_BUFFERING
(update: Debian has now applied said patch, so if you are running Debian Buster or later you don't need to apply it yourself).
Then the nginx configuration needs changing to pass the NO_BUFFERING option to fcgiwrap and to disable buffering inside nginx.
To do this I added some settings immediately before and after the "include fastcgi_params;" line.
#note: NO_BUFFERING relies on a patched fcgiwrap.
fastcgi_param NO_BUFFERING 1;
include fastcgi_params;
gzip off;
fastcgi_buffering off;
edited May 8 at 12:02
answered May 27 '17 at 13:08
Peter GreenPeter Green
3,026625
3,026625
add a comment |
add a comment |
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f852564%2fnginx-and-fcgiwrap-incremental-output-problems%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown