Home  /  RSS  /  RSS Comments  /  Enter

Nginx? No thank you... Lighttpd

Wednesday, February 1, 2012, by artyom ; 7 comments

Nginx is 3rd (or 2nd depending on the statistics) most popular web server. It seems that it should be one of the best servers around however, every time I have to deal with it I understand that I really don't like it.

When you look deep down into the Nginx web server you realize that it not as good as you think it is. Even though, it is a good reverse proxy and very well suited for serving static files, when it comes to dynamic content it begins to feel sloppy.

It is not uncommon that you have a web site powered by nginx and in reality it works like a load balancer or reverse proxy in front of Apache or other services.

And this is not an accident, this popular webs sever has too many flaws:

I've worked with nginx in different configurations and what I get most of the times is a feeling that the development of this web server is not performed according to protocol specifications but rather according what feature is needed as this specific point.

For example, it was mentioned in nginx source code that "Apache' specific PATH_INFO feature was not implemented. While PATH_INFO is a standardized environment variable defined by CGI 1.1 specifications and is not some "web server specific feature"

I know such note may look petty, but this is the general feeling of the level of implementation of many features.


So despite the popularity of this web server I would not choose it for serving dynamic content. If I need a high quality lightweight web server I'd always choose Lighttpd

Before you jump and say:

Buy lighttpd leaks!

I'll answer: "not true, it does not leak". It is one of the well know urban legends on the Internet.

Quoting:

there are no memory leaks just stupid ways to use lighttpd.

e.g. it is really stupid to stream large files via a fastcgi app, when x-lighttpd-send-file could do a much more efficient job.

For further reading:

So if you consider using Nginx on your web site, I'd strongly recommend to take a look on Lighttpd first.

CppBlog and Wiki++ are officially released

Wednesday, February 1, 2012, by artyom ; 2 comments

I had released the cppblog and wikipp latest versions based on CppCMS 1.x.x. Latest versions can be downloaded from the sourceforge. They are available under GPLv3 license.

The documentation on building these two web applications can be found there:

If you are want to use one of these applications in your language you are welcome to get the pot files from these project translate them and submit them to me. I'll happily add them to the trunk.

The project moved to the new web server and domain name

Thursday, January 26, 2012, by artyom ; 0 comments

Please update your RSS feeds and bookmarks:

If you find any broken links, please report it to me.

CppCMS Project Receives Donations...

Monday, January 23, 2012, by artyom ; Posted in: Framework; 0 comments

Support This Project CppCMS project receives monetary donations using sourceforge donation system.

If you are using this project consider donating some money. Follow the donations button on the CppCMS projects web site or the button in this post.

The money would help to create a better product and provide better service to the CppCMS users community.

CppCMS and STLPort

Wednesday, January 18, 2012, by artyom ; 0 comments

I was interest to take a look in STLPort for a long time ago and recently I finally did it.

STLPort is a cross platform and "cross compiler" implementation of the standard C++ library. It has more permissive license then libstdc++ and frequently used when C++ developers want to use same code across different platforms and compiler vendors.

It is quite simple to use it instead of libstdc++ with gcc:

g++ -I /usr/include/stlport file.cpp -lstlport

So I tried CppCMS with it and was stuck with two STLPort library bugs:

So how do you build CppCMS with STLPort? Simple:

  1. Fix the -fvisibility=hidden problem as shown above.
  2. Configure CppCMS with an option -DUSE_STLPORT=ON -DDISABLE_STD_LOCALE=ON, thats it.

Note, the STLPort support is still experimental and due to some issues with STLPort library it is recommended to remove std localization backend from the library.

next page

Pages

Categories