nginx trabalho seletivo de vários domínios

3

Esta é a minha primeira pergunta! Poucos dias atrás eu descobri que algo deu errado com o nginx: domínios A-C estão ok, outros timeout. Mais tarde: outros domínios estão ok e primeiro tempo limite; ou cada domínio funciona bem. Se eu reiniciar o nginx - nada muda. Depois de reiniciar tudo funciona bem.

Talvez o motivo seja que, às vezes, há muitos visitantes e conexões descartadas do nginx que não podem ser gerenciadas? (Anteriormente havia apache e ocasionalmente congelava VDS). Mas sem erros nos logs, nada. Na saída superior, vejo que há apenas 2-4 mb de espaço de troca usado.

É: arch linux, nginx, php-fpm.

arquivo de configuração: usuário http http;

worker_processes  1;

error_log /var/log/nginx/nginx.error.log;

events {
    worker_connections  2048;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    error_log   /var/log/nginx/http.error.log;

    sendfile        on;

    gzip        on;
    gzip_static     on;
    gzip_vary   on;

    client_body_buffer_size     1k;
    client_header_buffer_size   1k;
    client_max_body_size        5m;
    large_client_header_buffers 2 1k;

    client_body_timeout 10;
    client_header_timeout   10;
    keepalive_timeout   5 5;
    send_timeout        10;

    server  {
        listen      80;
        server_name www.A.com www.B.org www.F.net;
        if ($host ~* ^www\.(.+))    {set    $domain $1;}
        return  301 $scheme://$domain$request_uri;
    }

    server {
        listen       80; 
        server_name  A.com *.A.com B.org F.net;
        root   /home/user/public_html/$host;

        access_log /var/log/nginx/$host-access.log;
        error_log /var/log/nginx/server.error.log;

        location / {
            try_files   $uri $uri/ /index.php?$args;
            index       index.html index.htm index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ \.php$ {
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            try_files $uri =404;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

}

E, claro, acho que preciso encontrar o motivo, não apenas consertar o problema.

Muito obrigado!

    
por mr.frog 14.03.2013 / 09:53

3 respostas

0

Tente aumentar o tvice worker_connection. Ou se você tiver mais de um núcleo - aumente o worker_processes para o número de núcleos.

    
por 14.03.2013 / 10:40
0

Isso pode ajudá-lo ... do wiki da Nignx

client_body_buffer_size Syntax: client_body_buffer_size size Default: 8k|16k Context: http server location Reference: client_body_buffer_size

The directive specifies the client request body buffer size.

If the request body size is more than the buffer size, then the entire (or partial) request body is written into a temporary file.

The default size is equal to page size times 2. Depending on the platform, the page size is either 8K or 16K.

When the Content-Length request header specifies a smaller size value than the buffer size, then Nginx will use the smaller one. As a result, Nginx will not always allocate a buffer of this buffer size for every request.

serializar as requisições com accept_mutex on também pode ajudar ... Eu costumo checar o log do php-fpm também. A melhor coisa é verificar o comportamento como / porque o servidor não faz o servidor da página pretendida. Log é o único amigo que temos aqui, então, se você souber a hora em que o servidor não responde à solicitação, pode haver algo no log.

Ah, e Nginx reload pode fazer o truque, em vez de restart , que interromperá o serviço por um tempo.

    
por 14.03.2013 / 10:54
0

Se você tiver algo parecido, tente rastrear e verificar o DNS. Não tenho certeza, mas provavelmente nosso problema estava com os servidores DNS.

    
por 12.11.2016 / 13:31