Magento: Lighttpd vs Nginx [closed]
Asked Answered
P

1

6

I'm using Apache in all my Magento installations. I wonder if I should start to use Lighttpd or Nginx to improve performance. What do you think?

EDIT 1

I've seen that:

nginx: http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/configuring_nginx_for_magento

lighttpd: http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/installing-with-lighttpd-and-fastcgi

Protactinium answered 25/11, 2011 at 10:58 Comment(0)
U
16

Should you ditch Apache?

In my experience (using Nginx + PHP for about 3.5 years) it's a wonderful choice and I would never go back to Apache. There are two main advantages:

Reduced memory usage: Using Apache, PHP is loaded inside the webserver itself. If you have 80 Apache processes listening, everyone of them will run a different PHP environment, using 20-30MB of RAM each. Nginx, on the other hand, communicates with a bunch of php-fpm processes which you can scale separately. I usually have to run only 3-4 PHP processes, so this drastically reduces my memory usage.

Very fast static assets: Nginx is faster than Apache at serving static assets (CSS, JS, images, ...), and uses very little memory to do so.

One possible drawback is the lack of .htaccess files support. This means that if the PHP software you're using relies on this type of file and doesn't directly offer Nginx configuration examples, you will have to "translate" the Apache .htaccess file to a format that Nginx understands. In my experience, I had to do it for a couple of Wordpress plugins. Again, it's not too complicated and you can usually find someone who has already done it by googling.

The other thing to keep in mind is that Nginx+PHP-FPM is not some kind of magical panacea. If you have crappy, slow PHP code, this won't fix it. I have limited experience with Magento so I cannot offer you any specific insight. In the case of Wordpress (which I consider extremely bloated), Nginx is indeed a lot faster at serving static content, uses less memory and is a bit faster at serving PHP pages, but it certainly doesn't cut your PHP execution time in half ;)

Nginx vs Lighttpd

Nginx has recently gained a lot of popularity. Its usage has almost doubled in the last year and it's already 16 times more used than Lighttpd based on these statistics.

There doesn't seem to be a huge difference in performance between the two, so I would definitely go with Nginx.

Keep in mind that you will have to use PHP as php-fpm. It's not that difficult to configure, and there are countless, easy tutorials on how to make them work together.

Edit: Sorry I re-organized my answer, I kind of missed the point of your question at first.

Undershirt answered 25/11, 2011 at 11:28 Comment(6)
I need more specifics on Magento implementation. I know Magento relies in .htaccess but I know is possible to configure it for a nginx web server.Protactinium
The link that you posted in the edit reports a great example configuration for Magento. I don't know which version it's for, but this post reports that it works for both 1.4 and 1.5 (and offers full instructions for installing Nginx + PHP-FPM for Magento). Is there anything else you need to know?Undershirt
While I agree with the answer in principle, @Undershirt gives no real citations (other than more people use X) to back up the many claims here.Lethe
I'm afraid I don't have enough time right now to do an exhaustive research. If you google "Lighttpd Nginx" yourself you will find plenty of benchmarks and comparisons. Whether you want to decide what to use based on those synthetic benchmarks is up to you. When I answered this question Lighttpd and Nginx seemed pretty much on par as far as performance goes, so I suggested the more popular (by more than an order of magnitude) choice. In my mind, more popular means more resources, tutorials, SO questions and such to help you in case you need it, which is always good for a beginner.Undershirt
@Lethe By the way, your should read the SO FAQ section on voting down: "Use your downvotes whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect." I really don't think my answer qualifies.Undershirt
Might want to include something about the nginx config exploit.Shedevil

© 2022 - 2024 — McMap. All rights reserved.