
Taobao's branch of Nginx - ujeezy
http://tengine.taobao.org/
======
ck2
Hmm nginx cannot natively do piped logging?

I like the idea of combined javascript and stylesheets but I'd rather force
the combining from the server-side, not a special client-side request. ie.

    
    
       location /style.css {
          root /css;
          combine style1.css+style2.css+style3.css;
       }
    
    

Ohhh... agentzh wrote the fork? The one who made many popular modules?

~~~
tszming
>> nginx cannot natively do piped logging?

"No, nginx will not support logging to a pipe since this is simlpy waste of
CPU."

\- Igor Sysoev (<http://markmail.org/message/4bsjfjpg2kgsjhph>)

~~~
ck2
Interesting, so to rotate nginx logs do you have to restart nginx?

I always though piped logging was required to rotate logs without restart.

I love the graceful restart and even the replace the executable on the fly
nginx has.

~~~
tszming
You can send a USR1 signal to nginx. <http://wiki.nginx.org/LogRotation>

------
mercurial
Anyone outside of Taobao using this in production? I'd be really interested in
a reliable version of nginx supporting dynamic loading of modules, recompiling
nginx everytime you need a custom module quickly loses its charm.

~~~
tszming
Compiling nginx is generally very fast (especially if you compare to other
server).

Also, you can upgrade nginx binary without any downtime, see:
<http://wiki.nginx.org/CommandLine>

~~~
mercurial
If you compare to another sever like Apache which supports dynamic modules,
adding a single line in a configuration file (or at worst dropping a .so in a
folder, followed by adding a line in a configuration file) is much less work
than retrieving gcc and friends and rebuilding a .deb.

~~~
beagle3
Dropping a new nginx binary and live-migrating to it takes as much time as
doing the same on Apahce with a new .so

Have you ever actually used nginx? I compile it from source with much-less-
than-everything for security reasons (e.g., no proxy, no email, no ssi, no
ssl, not any of the other ten modules that come by default), and in the 3
times that I needed a module later, it was a quick ./configure;make;make
install;kill -SIG2 (or whatever the signal is to switch to a new version),
which was not more painful than I remember from my apache days of 5 years ago.

(Has apache changed since then?)

~~~
mercurial
I count 67 different modules in /etc/apache2/mods-available. Which means you
rarely a new .so. On the other hand, Nginx is much more limited in
functionalities out-of-the-box.

How do you handle deployment of your custom nginx on several boxes?

~~~
beagle3
The same way I handle deployment of everything else. The binary is just one
file (/usr/sbin/nginx). Distributing config and restarting processes is the
same as with apache.

(My recent nginx deployment have 2 machines, so I do it manually, but in the
past, I had a homegrown solution that would pull files from version control,
and if they changed, asked the binary to restart)

------
mnbbrown
There was thread on tengine when it was first made open source:
<http://news.ycombinator.com/item?id=3645055>

------
gadders
Slightly off-topic, but are there any other major open-source projects from
China? I was wondering whether a) there aren't many (yet) or b) they're mostly
publicised in Chinese so off the radar for English speakers.

~~~
yaoweibin
Have you heard of the LVS? (<http://www.linuxvirtualserver.org/>). We are
using it for load balance before Tengine. It's steady and high performance,
even better than the commercial load balancer.

------
tzury
I think the openresty <http://openresty.org/> is the one originated this as
the guys who maintain openresty are ex/current Taobao's employees.

------
yaoweibin
Tengine is developed on github. Anyone who is interested in can follow it.
URL: <https://github.com/taobao/tengine>

------
happywolf
Just curious if Taobao is using this stock branch in production servers. Any
proprietary modules loaded?

