прокси реверса nginx замедляет мою пропускную способность наполовину

Если я читаю Ваши числа правильно, и Вы сказали, что 2 000 пользователей на сервер почтовых ящиков, то математика выглядит хорошей мне. (Хранилище почтового ящика на 4 ГБ + копия на 4 ГБ с другого сервера) * 2 сервера = 16 ТБ. Конечно, Exchange не является моей вещью, таким образом, я не могу действительно прокомментировать, если копия является действительно настолько большой или нет.

4
задан 29 August 2012 в 18:11
1 ответ

Не забудьте добавить multi_accept в ; в блоке событий. Это гарантирует, что каждый рабочий принимает как можно больше подключений.

Не используйте tcp_nodelay on; , если вы не обслуживаете огромные данные / потоки. Даже если это так, вы должны активировать его только в соответствующем блоке местоположения.

Не проксируйте все на свой сервер, а только на то, что действительно должно обслуживаться вашим сервером. Вы также можете создать кеш прокси, чтобы ускорить все еще больше. Ниже приведен пример конфигурации, которую я создал в соответствии с конфигурацией, которую вы опубликовали выше.

# /etc/nginx/nginx.conf

worker_processes                  4;
worker_rlimit_nofile              20480; # worker_connections * 4
events {
  multi_accept                    on;
  worker_connections              5120;
  use                             epoll;
}
http {
  charset                         utf-8;
  client_body_timeout             65;
  client_header_timeout           65;
  client_max_body_size            10m;
  default_type                    application/octet-stream;
  keepalive_timeout               20;
  reset_timedout_connection       on;
  send_timeout                    65;
  server_tokens                   off;
  sendfile                        on;
  server_names_hash_bucket_size   64;
  tcp_nodelay                     off;
  tcp_nopush                      on;
  include                         sites-enabled/*.conf;
}

И виртуальный хост.

# /etc/nginx/sites-available/default.conf

upstream backend {
  server 127.0.0.1:8000;
}

server {
  server_name api.domain.com;

  location / {
    try_files $uri $uri/ @backend;
  }

  location @backend {
    proxy_buffering off;
    proxy_pass http://backend;
  }
}
11
ответ дан 3 December 2019 в 02:32

Теги

Похожие вопросы