show me the money
С нами с 18.02.03
Сообщения: 1598
Рейтинг: 263
|
Добавлено: 04/09/10 в 19:32 |
На сервере чисто для статики заменил Apache на nginx. Страницы со множеством картинок стали грузиться заметно быстрее.
Но вот вопрос. Сервер в некоторые дни испытавает нагрузку в N * 100,000 посетителей в день, и все они что-то грузят. Необходимо настроить конфиг nginx чтобы он не "загнулся".
Как я понял, основные параметры это: worker_processes (1) и worker_connections (1024). На одном сайте прочитал, что worker_processes * worker_connections = макс. число соединений.
Так ли это? Какие числа для этих параметров посоветуете? Что еще можно подправить?
|
|
|
|
С нами с 16.07.06
Сообщения: 886
Рейтинг: 892
|
Добавлено: 04/09/10 в 22:37 |
Поздравляю с открытием (велосипеда) nginx, тоже ссал кипятком, когда его установил ;)
Советую все-таки еще поставить nginx и как прокси для apache - даже так существенно сократит нагрузку на сервер.
Я давно пытался свой nginx настроить на одном из серверов, копал кучу инфы, мануалы, howto итд. Сейчас уже не помню какая настройка детально что делает.
Может чего пригодится из этого:
Код: |
worker_processes 4; # столько ядер на сервере, читал где-то что так лучше
worker_priority -5; # приоритет процесса
pid /var/run/nginx.pid;
timer_resolution 100ms; # Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности
worker_rlimit_nofile 8192; # Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса.
events {
worker_connections 8192;
use kqueue; # use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; kqueue good for freebsd
}
http {
sendfile on; # Использование sendfile() экономит системные вызовы, уменьшает число копирований данных, сжирает меньше памяти.
tcp_nopush on; # разрешает или запрещает использовать опции TCP_NOPUSH во FreeBSD
tcp_nodelay on;
ignore_invalid_headers on;
server_tokens off; # не показывать свою версию
reset_timedout_connection on; # надо узнать
client_header_timeout 30s; # таймаут при чтении заголовка запроса клиента
client_body_timeout 30s; # таймаут при чтении тела запроса клиента
send_timeout 30s; # таймаут при передаче ответа клиенту
keepalive_timeout 50 50; # таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
# resolver 127.0.0.1;
resolver_timeout 5s;
connection_pool_size 256;
client_header_buffer_size 8k; # размер буфера для чтения заголовка запроса клиента
large_client_header_buffers 100 8k; # максимальное число и размер буферов для чтения большого заголовка запроса клиента
request_pool_size 4k;
client_max_body_size 2m; # (1m) ограничить размер upload_файла
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_read_timeout 120; # таймаут при чтении ответа проксированного сервера, сек
proxy_connect_timeout 90; # таймаут для соединения с проксированным сервером, сек
proxy_send_timeout 90; # таймаут при передаче запроса проксированному серверу, сек
proxy_ignore_client_abort off;
proxy_intercept_errors off;
gzip on; # доступен при доп. модуле
gzip_buffers 64 8k;
#gzip_http_version 1.1;
gzip_http_version 1.0;
gzip_comp_level 5; # max-9, лучшие значения между 4 и 5
gzip_disable "MSIE 5\.[0-9]+";
gzip_min_length 1024; # не сжимать файлы менее 1КБ
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/css;
output_buffers 4 32k;
postpone_output 1460;
#limit_conn one 10; # разрешить для 1 юзера 10 коннектов, нужен модуль ngx_http_limit_zone_module
limit_rate 128k; # (128K*8=1024kbit/s) ;KBytes/sec скорость для 1 коннекта. 1 юзер может создавать несколько одновременных коннектов
#set $limit_rate 1k; # задать скорость на уровне server {}
...
дальше идут домены
...
}
|
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |