Re: accept_filter и backlog на непервом default-сервере

Никита Козлов niakrisn at gmail.com
Sat Sep 20 14:43:04 MSD 2008


В общем есть основной конфиг в котором описана директива инклуд, которая в
свою очередь инклудит файлы с конфигурациями виртуальных серверов. Вот
шаблон конфига виртуального сервера:
server {
    listen      #IP#:80;
    server_name #DOMAIN#.ru www.#DOMAIN#.ru;

    access_log /var/log/nginx/production/#PRE_DOMAIN#.log def;

    location / {
        proxy_pass         http://#DEST-IP#:80;
            proxy_redirect     off;
        proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              128 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   html;
    }

    location ~ /\.ht {
        deny  all;
    }
}
server {
    listen      #IP#:8081;
    server_name #DOMAIN#.ru www.#DOMAIN#.ru;

    access_log /var/log/nginx/def/#PRE_DOMAIN#.log def;

    root    /usr/home/#PRE_DOMAIN#/def/;

    {опущены некоторые rewrite правила}

    location /kcaptcha/ {
        proxy_pass         http://#LOCAL-IP#:8080/;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        client_body_temp_path      /var/tmp/nginx/client_body_temp;
        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      75;
        proxy_send_timeout         180;
        proxy_read_timeout         180;

        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }
}

и вот конфиг дефолтного виртуального сервера

server {
    listen 80 default accept_filter=httpready;

    root /usr/local/etc/nginx/default_vhost/;

    rewrite ^/(.*)$ /index.html break;

    index index.html;
}


основной конфиг

user  www;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  200000;
}

http {
    open_file_cache          max=1000  inactive=20s;
    open_file_cache_valid    30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors   on;

    server_tokens off;

    client_max_body_size 15m;

    include       mime.types;
    default_type  application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] $request '
                    '"$status" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    log_format def  '$remote_addr - $remote_user [$time_local] $request '
                            '"$status" $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for" '
                            '$request_time ' '$connection';

    access_log  /var/log/nginx/access.log def;

    sendfile        on;
    tcp_nopush     on;

    #output_buffers 1 32k;
    postpone_output 1460;

    keepalive_timeout  65;
    reset_timedout_connection on;

    #gzip  on;

    include vhosts/*.conf;
}


Спасибо.


19 сентября 2008 г. 22:00 пользователь Igor Sysoev <is at rambler-co.ru>написал:

> On Fri, Sep 19, 2008 at 09:27:48PM +0400, Никита Козлов wrote:
>
> > Игорь, а в 0.7.14 этот патч включен в исходники?
> > Просто на этой версии не работает.
> > Описываю дефолтный виртуальный сервер со своей рут директорией,
> > перезапускаю, ругани никакой нет.
> > На каждом из адресов есть свой виртуальный сервер с описанной
> > директивой server_name.
> > Если обратиться напрямую по IP через броузер, то обслуживает тот
> виртуальный
> > сервер в котором описана server_name, а не default сервер.
> >
> > Или я чего то не понимаю и так и должно быть?
> > Конфиги проверил default в listen только для одного виртуального сервера.
>
> Патч есть в 0.7.14, но это должно работать и без патча.
> Как выглядит конфигурация ?
>
> > 27 августа 2008 г. 17:26 пользователь Igor Sysoev <is at rambler-co.ru
> >написал:
> >
> > > On Wed, Aug 27, 2008 at 03:17:10PM +0400, jackal wrote:
> > >
> > > > Задача:
> > > > Нужно чтобы один домен на одном айпи a.b.c.d обслуживался одной
> > > директивой
> > > > server, а все остальные домены (на всех айпи, в т.ч. a.b.c.d - другой
> > > > директивой server)
> > > >
> > > > Сделано вот так:
> > > > server {
> > > >       listen a.b.c.d:80;
> > > >       server_name domain.ru;
> > > >       ...
> > > > }
> > > > server {
> > > >       listen a.b.c.d:80 default accept_filter=httpready backlog=1024;
> > > >       listen 80 default accept_filter=httpready backlog=1024;
> > > >       ...
> > > > }
> > > >
> > > > Вопрос - почему не выставляется backlog для айпи a.b.c.d, и
> выставляется
> > > ли
> > > > accept_filter?
> > > >
> > > > # sysctl kern.ipc.somaxconn
> > > > kern.ipc.somaxconn: 4096
> > > >
> > > > # netstat -Lan
> > > > Current listen queue sizes (qlen/incqlen/maxqlen)
> > > > Proto Listen         Local Address
> > > > tcp4  0/0/4096       a.b.c.d.80
> > > > tcp4  0/0/1024       *.80
> > >
> > > Прилагаемый патч должен помочь.
> > >
> > >
> > > --
> > > Игорь Сысоев
> > > http://sysoev.ru
> > >
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080920/cac7c268/attachment.html>


More information about the nginx-ru mailing list