3 ms·
Congratulations to the team indeed. I'm setting up my next project in this configuration as well and I've found nginx to be a very sweet server. I'll be servi
by dhimes 16y ago
Congratulations to the team indeed. I'm setting up my next project in this configuration as well and I've found nginx to be a very sweet server. I'll be serving a lot of javascript and css, but using php to handle the utility chores of accessing mysql and couchdb. Even though I'm keeping the apache back-end for this, I confess it's more out of comfort and laziness (and the rush to get it out) than because of some profound technical insight on my part.
- justincormack 16y agoIt really is trivial to set up an fcgi process to run PHP directly from nginx. On the nginx side, something like my config: location ~ \.php { fastcgi_index index.php; include fastcgi_params; fastcgi_pass localhost:55155; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } Then you just need to run php in fcgi daemon mode which is built in, use php-cgi -b localhost:55155 to match that setup... more details on http://wiki.nginx.org/PHPFcgiExample http://wiki.nginx.org/PHPFcgiExample I found this much simpler than running nginx and apache...
- chopsueyar 16y agoA socket is probably faster.
- justincormack 16y agoNot really the bottleneck if you are running PHP. Linux optimises most of tcp out over the loopback device anyway.
- treo 16y agoI ran into a problem with a tcp connection to php-fpm just some weeks ago: The Server served requests at a rate of about 400req/s for some time without a single problem, until I ran out of useable ports. You won't have this problem with sockets.
- nbpoole 16y agoIf you do that, you have to be very careful. I actually did a writeup about this a few days ago that I posted on HN: https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/ https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-an... tl:dr is that the configuration you're suggesting will leave a site open to arbitrary code execution if the site allows for user uploads.
- justincormack 16y agoThats not a full config, I did reference the documentation. I have a try_files line, as fcgi runs locally as it happens.
- Yaa101 16y agoJust use PHP-FPM instead, it's easier and scales better. I run PHP, Django/Python and Perl without a problem at a single domain. NGINX allows to run almost anything as long as you are able to attach the socket of what you want to output towards NGINX.
- pilif 16y agofor me the reason to stay with an apache/mod_php backend was very bad experience I had with fastcgi back in the 2006/2007 area where I was using a lighttpd/fastcgi configuration. I've seen crashes in lighty, crashes in fastcgi and subtle differences in behavior between fastcgi and mod_php. FastCGI just wasn't a commonly used method of deployment back then, so there were for sure some bugs around that I didn't have time or interest to fix. By now, there's PHP-FPM and fastcgi is much more common, so you could probably just hook php directly into nginx by now, but I didn't want to do experiments and I knew that apache worked, so that's what I used. Just remember to turn off keep-alive in apache, btw.
- chopsueyar 16y agoI use nginx with PHP-FPM on multiple sites and have been quite happy with the results.
- rmccue 16y agoI'd say it's fairly stable, as (IIRC) WordPress.com is all run off nginx.
- dhimes 16y agoThere was a bit of chatter recently about ill-configured nginx-fastcgi servers having a php vulnerability. Seems to be summed up here: https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/ https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-an... Thanks for the keep-alive tip. I missed that one. EDIT: I see that the author of the post I linked replied below- also with the link.
- EGreg 16y agoIs it really a team? I thought it was just Igor Sysoev :)