nginx 1.5.10 now supports SPDY 3.1

It was an accident for me also, hehe. I usually wakeup around 11. :)

@MattW, don't forget the nginx -V, thanks. Actually Shawn post yours too? I'm curious.

Code:
twin1:~ # nginx -V
nginx version: nginx/1.7.0
built by gcc 4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/usr/log/nginx/error.log --http-log-path=/usr/log/nginx/access.log --with-openssl=/home/software_source/openssl-1.0.1g --with-openssl-opt=enable-ec_nistp_64_gcc_128 --with-cc-opt='-I /usr/local/ssl/include' --with-ld-opt='-L /usr/local/ssl/lib' --without-http_ssi_module --with-http_ssl_module --with-http_stub_status_module --with-http_spdy_module
 
Mines, need full WebDAV, FileIO, PAM, PCRE-Jit, GeoIP, libatomic and the fancy modules you see.
# nginx -V
nginx version: nginx/1.7.0
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-select_module --with-poll_module --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/client --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --http-scgi-temp-path=/var/lib/nginx/scgi --with-mail --with-mail_ssl_module --with-cpp_test_module --with-cc-opt='-O3 -g -m64 -mtune=nocona -m128bit-long-double -mmmx -msse3 -mfpmath=sse' --with-pcre --with-pcre-jit --with-libatomic --add-module=nginx-dav-ext-module --add-module=ngx_http_auth_pam_module-1.3
Yes, I did Siege performance tests to see the differences with or without.
 
Code:
[root@test html]# nginx -V
nginx version: nginx/1.7.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
TLS SNI support enabled
configure arguments: --with-cc-opt='-I/svr-setup/staticlibssl/include -I/usr/include' --with-ld-opt='-L/svr-setup/staticlibssl/lib -Wl,-rpath -lssl -lcrypto -ldl -lz' --sbin-path=/usr/local/sbin --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_sub_module --with-http_addition_module --with-http_image_filter_module --with-http_secure_link_module --with-http_flv_module --with-http_realip_module --with-openssl-opt=enable-tlsext --add-module=../ngx-fancyindex-ngx-fancyindex --add-module=../ngx_cache_purge-2.1 --add-module=../headers-more-nginx-module-0.25 --add-module=../nginx-accesskey-2.0.3 --add-module=../nginx-http-concat-master --with-http_dav_module --add-module=../nginx-dav-ext-module-0.0.3 --with-openssl=../openssl-1.0.1g --with-libatomic --with-pcre=../pcre-8.35 --with-pcre-jit --with-http_spdy_module --add-module=../ngx_pagespeed-release-1.7.30.4-beta
 
nginx 1.7.0 update without any problems on modded centminmod

Code:
# nginx -V
nginx version: nginx/1.7.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/sbin --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_ssl_module --with-http_spdy_module --without-http_browser_module --without-http_charset_module --without-http_empty_gif_module --without-http_geo_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_auth_basic_module --without-http_autoindex_module --without-http_limit_req_module --without-http_limit_conn_module --without-http_browser_module --without-http_geo_module --without-http_map_module --without-http_memcached_module --without-http_referer_module --without-http_proxy_module --without-http_scgi_module --without-http_split_clients_module --without-http_ssi_module --without-http_upstream_ip_hash_module --without-http_userid_module --without-http_uwsgi_module
 
@MattW, force FileIO, add PCRE-Jit and libatomic at least, they are vital... and get rid of the pagespeed. :D
You will get best results on 64bits... Guys, post a quote, my finger hurts from scrolling. :D
 
@MattW, force FileIO, add PCRE-Jit and libatomic at least, they are vital... and get rid of the pagespeed. :D
It's only a test build. When I do the live server over the weekend, I'll make the changes.

EDIT: actually, they are already there:
Code:
--with-libatomic --with-pcre=../pcre-8.35 --with-pcre-jit
 
I'm glad George did his research. :)
Did he enabled Jit in the .conf file? It will make those regexes dance.
 
Code:
# nginx -V
nginx version: nginx/1.7.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/sbin --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_spdy_module --with-ipv6 --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_sub_module --with-http_addition_module --with-http_secure_link_module --with-http_flv_module --with-http_realip_module --with-libatomic --with-pcre=../pcre-8.35 --with-pcre-jit --with-http_dav_module --add-module=../nginx-dav-ext-module-0.0.2 --add-module=../ngx-fancyindex-ngx-fancyindex --add-module=../ngx_cache_purge-2.1 --add-module=../nginx-accesskey-2.0.3 --with-openssl=../openssl-1.0.1g --add-module=../nginx-http-concat-master --with-openssl-opt=enable-tlsext
Live server done
 
1.7 builds OK with Centminmod

Code:
[root@test centmin-v1.2.3mod]# nginx -v
nginx version: nginx/1.7.0

Yeah best thing I like about Centmin Mod is end user can upgrade Nginx and PHP versions themselves. No need to wait for any repo folks to release their updates.
 
The newer branch isn't stable for me (segfaults every few days). I stopped trying it at 1.4.15... Maybe they fixed whatever it was since then.

Hasn't been a huge deal to try and upgrade again... The speed is the same and I don't really have time to be deing with memcached servers going away for no reason.

Some others were having the same issue in their big tracker and they were having problems tracking down what the actual issue was.
 
  • Like
Reactions: rdn
force [...] PCRE-Jit


did you test that out? The guys tell on their webpage that for extensive regular expressions they are faster, while there are lots of situations where PCRE-Jit is slower.

I only have very few basic expressions like (a|b), not fancy stuff.
 
I'm glad George did his research. :)
Did he enabled Jit in the .conf file? It will make those regexes dance.
@Floren yup for Centmin Mod .07 beta (soon to be stable) it's on and enabled by default :D

did you test that out? The guys tell on their webpage that for extensive regular expressions they are faster, while there are lots of situations where PCRE-Jit is slower.

I only have very few basic expressions like (a|b), not fancy stuff.
@Marcus Haven't tested it myself in terms of differences without/with, but my new forum (~12 days old) https://community.centminmod.com is using latest Centmin Mod .07 beta 21 with PCRE-Jit enabled ;)
 
  • Like
Reactions: rdn
did you test that out? The guys tell on their webpage that for extensive regular expressions they are faster, while there are lots of situations where PCRE-Jit is slower.

I only have very few basic expressions like (a|b), not fancy stuff.
Which guys? :) By definition, JIT will dramatically speed the processing of regular expressions on PCRE 8.20+:
Release 8.20 21-Oct-2011
------------------------
The main change in this release is the inclusion of Zoltan Herczeg's
just-in-time compiler support, which can be accessed by building PCRE with
--enable-jit. Large performance benefits can be had in many situations. 8.20
also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up
a number of infelicities and differences from Perl.
If you run a lower version, compiling Nginx with JIT is useless. For RHEL6, the max version you can use is 8.21. Anything higher will generate compile issues due to older deps:
Code:
# yum -q info pcre
Installed Packages
Name        : pcre
Arch        : x86_64
Version     : 8.21
Release     : 1.el6
Size        : 1.6 M
Repo        : installed
From repo   : axivo
Summary     : Perl-compatible regular expression library
URL         : http://www.pcre.org/
License     : BSD
Description : PCRE is a Perl-compatible regular expression library. It has its own native API,
            : but a set of "wrapper" functions that are based on the POSIX API are also
            : supplied in the library libpcreposix. Note that this just provides a POSIX
            : calling interface to PCRE: the regular expressions themselves still follow Perl
            : syntax and semantics. The header file for the POSIX-style functions is called
            : pcreposix.h.
The default RHEL6 available version is 7.8.
 
http://sljit.sourceforge.net/pcre.html

About performance optimizations
Always do profiling! PCRE-JIT can only help you, if matching regular expressions takes at least 4-5% of the total runtime. Otherwise you might not see any performance increase (or you will see performance drops) due to the changes of the binary layout. It is unfortunately less known, that inserting nops can increase or decrease the runtime of any program by up to 3%, due the the CPU cache layout, branch prediction mechanisms, etc. In artificial cases, the runtime change can be even bigger (±50% for example). When any function is modified, even if the change is small, it affects the entire binary layout, since the entry offset of other functions will be changed as well (especially those, which are placed after this function in the executable by the linker). Therefore when the ratio of matching regular expressions is very low, you might experience a slight performance drop when using PCRE-JIT.
 
Back
Top Bottom