config file for only static files.

Igor Sysoev is at
Sat Apr 5 12:51:36 MSD 2008

On Sat, Apr 05, 2008 at 03:55:47AM +0000, Amer wrote:

> I wanted to run a particular configuration by you guys to get your thoughts. I'm
> moving from lighttpd to nginx.
> First a little bit of background. The site is a single server running FreeBsd.
> It's a Dual Processor Quad Core Xeon 5310 1.60GHz (Clovertown) with a 2 x 8MB
> cache and 4 GB RAM. The site serves only static content. There is absolutely
> zero dynamic content. No databases involved. Each static file is about 50 kb.
> I get about 3000-3500 requests/second with lightpd and with my initial setup of
> nginx I get about the same. While I'm happy with this I used a very simple
> config file and just wanted to see if the experienced folks over here could
> point out some things that might be able to boost that up even further. It's
> very simple and short (just about 20 lines) and I hope some of you could give me
> some advise to get more performance (if possible).
> ----------------------------------------------
> worker_processes  4;
> events {
>     worker_connections  1024;
> }
> http {
>     include       mime.types;
>     default_type  application/octet-stream;
>     sendfile        on;
>     tcp_nopush     on;
>     keepalive_timeout  65;
>     gzip  on;
>     gzip_types      text/plain text/html text/css application/x-javascript   
>                     text/xml application/xml application/xml+rss ext/javascript;
>     server {
>         listen       80;
>         server_name  localhost;
>         location / {
>             root   /usr/local/www/data;
>             index  indexd12.html;
>         }
>         error_page  404              /404.html;
>     }
> }

As it was suggested, try to use gzip_static.

Also, remove unused MIME types from gzip_types.
There is no application/xml, application/xml+rss, and ext/javascript
in default miem.types. The gzip modules tests Content-Type sequentially,
so the shorter list is the better.

You may need to increase worker_connections, 1024 mean that you are
able to handle 4*1024 connections only. You also need to increase
number of files, sockets, etc in kernel.

If you do not need access_log, you may set it off.
Or, you may use buffered log:

http {

    access_log   /path/to/log  buffer=32k;

Also you may marginally decrease number of syscalls using:

timer_resolution  100ms;

And finally use open file descriptor cache to decrease number of
open()/stat()/close() syscalls:

http {

    open_file_cache          max=10000  inactive=20s;
    open_file_cache_valid    30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors   on;

However, I do not think that all these settings will result in more
requests/seconds in your environment.

Igor Sysoev

More information about the nginx mailing list