(fast)cgi and nginx - there has to be a better way
Reinis Rozitis
r at roze.lv
Thu Sep 25 22:41:09 MSD 2008
> care to elaborate how deployment of on lighttpd is 10x faster than
> deployment
> on nginx?
At some point as a person who has also used lighty for quite some time I can
understand the initial posters thoughts (which maybe is not a slowdown of
deployment rather tricky part of configuring) and here is why:
Basically because nginx lacks global locations (correct me if I am wrong but
afaik now they are only in server scope) and if() works pretty nasty - it is
sometimes tricky in case of virtualhosts to make the config look clean/nice
and work as expected.
Like with the if() case
http://article.gmane.org/gmane.comp.web.nginx.english/6908
In lighty it works the simple way:
some_global_setting = value;
if(something) {
some_global_setting = other_value_A;
}
if(something_else) {
some_global_setting = other_value_B;
}
Also maybe its not the common case but if you have multiple hosts you have
to specify location ~ \.php$ { fastcgi_pass ... } for every single server {}
where the php itself is rarely different for each host. In lighty you can
specify it globally - fastcgi.server = (".php" => ( host))) .. and if you
need a special configuration/version of php override it in other if().
Basically in lighty you can put everything in if() and keep some settings
globally (like php backend / expire/gzip settings for certain
file-types/location) but in nginx you can't... Which makes my nginx config
at least twice (multiply by virtualhosts) the size of a lighty config file..
On the other hand don't see this as whining..
I like nginx and we have solved a lot of problems (like memory leaks and 500
bad gateway errors) by switching to it. Which is primary.
Just would like to see some global location option (so I dont have to put
location *.jpg expire 30d for every vhost) and maybe make the IF() more
flexible.
rr
More information about the nginx
mailing list