Introduction
Introduction Statistics Contact Development Disclaimer Help
README: update and document workaround for a bug with nginx 1.12 - gopherproxy-…
git clone git://git.codemadness.org/gopherproxy-c
Log
Files
Refs
README
LICENSE
---
commit 63d1799106c7f186d008b3085f1d6059c99b2681
parent 2922b5f38556aacf5dd1c6928b34be60a07cec7b
Author: Hiltjo Posthuma <[email protected]>
Date: Fri, 17 Aug 2018 15:58:26 +0200
README: update and document workaround for a bug with nginx 1.12
Diffstat:
M README | 60 +++++++++++++++++++++++++++++…
1 file changed, 57 insertions(+), 3 deletions(-)
---
diff --git a/README b/README
@@ -1,17 +1,71 @@
gopherproxy
===========
-Build dependencies:
+Build dependencies
+------------------
+
- C compiler.
- libc + some BSD extensions (dprintf).
- POSIX system.
- make (optional).
-Features:
+Features
+--------
+
- Works in older browsers such as links, lynx, w3m, dillo, etc.
- No Javascript or CSS required.
-Cons:
+Cons
+----
+
- Not all gopher types are supported.
+
+
+Notes
+-----
+
+When using nginx 1.12+ with OpenBSD slowcgi there may be buffering issues. This
+is a bug in nginx. This bug is fixed in newer nginx versions (see patch below).
+
+Workaround:
+ # workaround fastcgi buffering bug in nginx (fixed in 1.14).
+ fastcgi_buffering off;
+
+Patch:
+
+commit cfc8c28259b3fd59f2517ac4830a08e8a9925148
+Author: Maxim Dounin <[email protected]>
+Date: Thu Nov 9 15:35:20 2017 +0300
+
+ FastCGI: adjust buffer position when parsing incomplete records.
+
+ Previously, nginx failed to move buffer position when parsing an incomplete
+ record header, and due to this wasn't be able to continue parsing once
+ remaining bytes of the record header were received.
+
+ This can affect response header parsing, potentially generating spurious e…
+ like "upstream sent unexpected FastCGI request id high byte: 1 while readi…
+ response header from upstream". While this is very unlikely, since usually
+ record headers are written in a single buffer, this still can happen in re…
+ life, for example, if a record header will be split across two TCP packets
+ and the second packet will be delayed.
+
+ This does not affect non-buffered response body proxying, due to "buf->pos…
+ buf->last;" at the start of the ngx_http_fastcgi_non_buffered_filter()
+ function. Also this does not affect buffered response body proxying, as
+ each input buffer is only passed to the filter once.
+
+diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx…
+index ea16ecae..b4bb1d0a 100644
+--- a/src/http/modules/ngx_http_fastcgi_module.c
++++ b/src/http/modules/ngx_http_fastcgi_module.c
+@@ -2646,6 +2646,7 @@ ngx_http_fastcgi_process_record(ngx_http_request_t *r,
+ }
+ }
+
++ f->pos = p;
+ f->state = state;
+
+ return NGX_AGAIN;
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.