Nginx+linux

pavel at pronskiy.ru pavel at pronskiy.ru
Sat May 31 17:59:18 MSD 2008


У меня конфигурация приблизительно такая же, только процессор E6600 и 
памяти 2gb
В среднем соединений не так много, примерно 150-200 постоянных, страницы 
отдаются моментально без кэширования запросов.
Попробуйте такие настройки:

worker_processes  2;
worker_rlimit_nofile 4096;
worker_priority 5;


events {
        worker_connections  4096;
        use epoll;
}


    client_header_buffer_size      16k;
    client_max_body_size           20M;
    client_header_timeout           60;
    client_body_timeout             60;
    large_client_header_buffers 16 16k;

    send_timeout                         120;

    proxy_read_timeout              180;
    proxy_connect_timeout         60;
    proxy_send_timeout             180;
    proxy_buffer_size                 64k;
    proxy_buffers                       64 512k;
    proxy_busy_buffers_size      1024k;
    proxy_temp_file_write_size  1024k;

    gzip                              on;
    gzip_min_length               10240;
    gzip_buffers                  32 64k;
    gzip_types                    application/x-javascript text/css;

    msie_padding             on;
    sendfile                      on;
    tcp_nopush                on;
    tcp_nodelay               on;
    output_buffers            32 256k;
    postpone_output        1460;
    lingering_time             30;
    lingering_timeout        6;

    reset_timedout_connection     on;
    keepalive_timeout                  160;
    optimize_server_names          on;

    server_names_hash_max_size    1024;
    server_names_hash_bucket_size 512;


server {


        #В данном примере используется php-fpm
        location ~* ^.+\.(php)$ {
            include /etc/nginx/php-cgi.conf;
            fastcgi_pass unix:/var/run/php-domain.tld.sock;
        }


}

---Файл php-cgi.conf

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_ignore_client_abort on;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME    $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param   SERVER_SOFTWARE   "Bulbulator OS/2";
fastcgi_param   GATEWAY_INTERFACE       "CGI/1.1";
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

У меня было нечто подобное с отдачей страниц но проблема была из-за 
очень частых обращений в базу, решилось оптимизацией.



Kostya Alexandrov пишет:
> А чем sendfile не угодил?
> Есть ли резон tcp_nodelay?
>
> sleepy wrote:
>> В сообщении от Saturday 31 May 2008 21:35:36 Andrew Velikoredchanin 
>> написал(а):
>>  
>>> sleepy пишет:
>>>    
>>>> Не могу понять в чем дело, у меня под Linux сервер уже сдыхает при 
>>>> 200 -
>>>> 250 одновременных подключениях. Пробовал rtsig и  epoll, толку ни 
>>>> какого.
>>>> Перепробовал различные комбинации колличества worker процессов. С
>>>> бэкендом общается через unix сокет, всего 5 пулов . В чем может быть
>>>> проблемма и решаема ли она?
>>>>       
>>> Вы забыли указать версию nginx, характер нагрузки, мощность сервера,
>>> загруженность его другими задачами и т.д.
>>>     
>>
>> Прошу прощения, nginx version: nginx/0.6.31
>> PHP 5.2.6
>>
>> Нагрузка в виде где то 500-700 одновременных пользователей, отдаются 
>> веб страницы в связке с php через fastcgi. Сервер c процессором 
>> Intel(R) Core(TM)
>> 2 Duo CPU     E8200  @ 2.66GHz память 8 Гб других задач на сервере 
>> нет!, процессор простаивает. на страницах скриптов пишется время 
>> генерации меньше 0,2 секунды, но страница отдаётся очень долго, 
>> вернее время между запросом и загрузкой достигает около полуминуты.
>> Пробовал до этого переходить от старых версий к новым, ситуация не 
>> меняется.
>>
>> отслеживание по команде top даёт такую картину:
>>
>> сначала нет никакой нагрузки, не смотря на то что запросов уже много 
>> сделано, потом появляется на короткий промежуток в загрузке php 
>> процессы, быстро отрабатывают, и простой продолжается еще какое то 
>> время. Далее всё повторяется снова.
>> Привожу конфиг:
>>
>> #user  apache;
>> worker_processes  25;
>>
>> #error_log  logs/error.log;
>> #error_log  logs/error.log  notice;
>> #error_log  logs/error.log  info;
>> #pid        logs/nginx.pid;
>>
>>
>> events {
>>     worker_connections  1024;
>> #use rtsig;
>> use epoll;
>> }
>>
>>
>> http {
>>
>>     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"';
>>
>>     #access_log  logs/access.log  main;
>> server_tokens off;
>> sendfile        off;
>> tcp_nopush     off;
>> tcp_nodelay      on;
>> keepalive_timeout  0;
>> #keepalive_timeout  65;
>> open_file_cache          max=300  inactive=20s;
>> open_file_cache_valid    30s;
>> open_file_cache_min_uses 2;
>> open_file_cache_errors   on;
>>
>>
>> #    gzip  on;
>>
>> upstream backend {
>>
>>
>> server unix:/tmp/php1.sock;
>> server unix:/tmp/php2.sock;
>> server unix:/tmp/php3.sock;
>> server unix:/tmp/php4.sock;
>> server unix:/tmp/php.sock;
>> }
>>
>>
>> server {
>>         listen       80;
>>         server_name  changeSource www.dsvload.net;
>>
>>         #charset koi8-r;
>>
>>         access_log  logs/host.access.log  main;
>>
>>         location / {
>>             root /home/ftp/dsvload/dsvload.net  ;
>>             index  index.php index.html index.htm;
>>         }
>> #        error_page  404              /404.html;
>>
>>         # redirect server error pages to the static page /50x.html
>>         #
>>         error_page   500 502 503 504  /50x.html;
>>         location = /50x.html {
>>             root  html;
>>         }
>>
>> location ~ \.php$ {
>>         fastcgi_pass   backend;
>>         fastcgi_index  index.php;
>>         fastcgi_param  SCRIPT_FILENAME  
>> /home/ftp/dsvload/dsvload.net$fastcgi_script_name;
>> fastcgi_param  QUERY_STRING       $query_string;
>> fastcgi_param  REMOTE_ADDR        $remote_addr;
>>
>> # - если скрипты обрабатывают запросы POST:
>> fastcgi_param  REQUEST_METHOD     $request_method;
>> fastcgi_param  CONTENT_TYPE       $content_type;
>> fastcgi_param  CONTENT_LENGTH     $content_length;
>>                        # - и все остальные:
>> #fastcgi_param  PATH_TRANSLATED    $fastcgi_path_translated;
>> fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
>> fastcgi_param  REQUEST_URI        $request_uri;
>> fastcgi_param  DOCUMENT_URI       $document_uri;
>> fastcgi_param  DOCUMENT_ROOT      $document_root;
>> fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>> fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
>> fastcgi_param  REMOTE_PORT        $remote_port;
>> fastcgi_param  SERVER_ADDR        $server_addr;
>> fastcgi_param  SERVER_PORT        $server_port;
>> fastcgi_param  SERVER_NAME        
>> $server_name;                                                                                                                         
>> fastcgi_param  DOCUMENT_ROOT      $document_root;
>> #fastcgi_intercept_errors on;
>>
>>
>> # include        conf/fastcgi_params;
>>         }
>> }
>> # HTTPS server
>>     #
>>     #server {
>>     #    listen       443;
>>     #    server_name  localhost;
>>
>>     #    ssl                  on;
>>     #    ssl_certificate      cert.pem;
>>     #    ssl_certificate_key  cert.key;
>>
>>     #    ssl_session_timeout  5m;
>>
>>     #    ssl_protocols  SSLv2 SSLv3 TLSv1;
>>     #    ssl_ciphers  
>> ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:
>> +EXP;
>>     #    ssl_prefer_server_ciphers   on;
>>
>>     #    location / {
>>     #        root   html;
>>     #        index  index.html index.htm;
>>     #    }
>>     #}
>>
>>
>>
>> }
>>
>>
>>   
>


-- 
icq: 99699699






More information about the nginx-ru mailing list