On Sat, Aug 09, 2014 at 02:19:32PM -0400, mastercan wrote:
‘cat /proc/sys/net/ipv4/tcp_fastopen’ gives me “3” - I also tried it with
the value “2”.
Why does my system not support TCP fastopen? My kernel is recent enough…
Try looking into objs/autoconf.err, it has details about configure
test failures. Most likely, the TCP_FASTOPEN constant isn’t
defined since your glibc isn’t recent enough, something like 2.18+
is needed.
Try looking into objs/autoconf.err, it has details about configure
test failures. Most likely, the TCP_FASTOPEN constant isn’t
defined since your glibc isn’t recent enough, something like 2.18+
is needed.
Yes, you’re right. glibc was the problem. I tried to build an nginx deb
package on a development machine with updated glibc libs and installed
it on
the production server.
Unfortunately I get this error when trying to start nginx:
“/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14’ not found
(required
by /usr/sbin/nginx)”
So I guess I must upgrade glibc on the production server as well…which
might break dependencies…
Yes, you’re right. glibc was the problem. I tried to build an nginx deb
package on a development machine with updated glibc libs and installed it
on the production server.
Don’t upgrade libc because of this (it will mess your system up).
Just define it manually when compiling nginx by passing it to the
compiler:
-DTCP_FASTOPEN=23
“/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14’ not found (required
by /usr/sbin/nginx)”
So I guess I must upgrade glibc on the production server as well…which
might break dependencies…
There is nothing in this feature that needs a recent glibc except the
definition of TCP_FASTOPEN constant. On the machine where you compile,
you can just add the constant in /usr/include/linux/tcp.h and
/usr/include/netinet/tcp.h. The resulting binary will work on another
machine without this modification.
nginx should just define this symbol when not available. The remaining
of the code is already detecting at runtime if this feature is available
or not.
Localise input and output in subroutines.
- The Elements of Programming Style (Kernighan & Plauger)