nepster-web
@nepster-web

Как заставить на винде работать Nginx быстрее ?

Работаю с OpenServer использую Nginx 1.7

Я наблюдаю такую ситуацию:

Мой локальный ПК:
8 ядер 3,2, 8гб озу, вин 2012 сервер
Конфиг Nginx дефолтный (+- настройка хостов)

Хостер:
Физический сервер, 2 ядра 2,2, 1гб озу, Debian
Конфиг Nginx дефолтный (+- настройка хостов)

Почему Nginx у хостера работает раз 5 быстрее чем мой локальный ? Я понимаю, что линукс это круто, что там быстрая файловая система, но все же как-то обидно. Можно ли разогнать это дело на винде ?

Какие должны быть конфигурации, чтобы nginx работал быстрее, возможно я что-то упустил ?

И пользуясь случаем, подскажите пожалуйста как избавится на nginx от 504 Gateway Time-out. Все советы, которые находил на различных сайта, не решали мои проблемы.

OpenServer nginx config
#---------------------------------------------#
# Основная конфигурация сервера Nginx
#---------------------------------------------#

worker_processes  1;
pid               "%sprogdir%/userdata/temp/nginx.pid";
error_log         "%sprogdir%/userdata/logs/%httpdriver%_error.log" warn;

events {
worker_connections 1024;
}

http {

include          "%sprogdir%/modules/http/%httpdriver%/conf/mimen.types";
error_log        "%sprogdir%/userdata/logs/%httpdriver%_error.log" debug;
default_type     application/octet-stream;
%httpcharset%
log_format main '$host: $remote_addr [$time_local] '
'"$request" "$http_referer" $status $bytes_sent '
'"$http_user_agent" "$http_x_forwarded_for"';
%logstring%

autoindex                          on;
tcp_nopush                         on;
tcp_nodelay                        on;
reset_timedout_connection          on;
ignore_invalid_headers            off;
server_tokens                     off;
keepalive_timeout               10000;

#---------------------------------------------#
# Конфигурация буферов
#---------------------------------------------#
proxy_connect_timeout       6000;
proxy_send_timeout          6000;
proxy_read_timeout          6000;


client_body_timeout                10m;
client_body_buffer_size          512k;
client_header_buffer_size          16k;
client_header_timeout              10m;
client_max_body_size              50m;
large_client_header_buffers      4 8k;
send_timeout                       10m;
server_names_hash_bucket_size     512;
server_names_hash_max_size       4096;
server_name_in_redirect           off;

#---------------------------------------------#
# Конфигурация GZIP
#---------------------------------------------#

gzip                               on;
gzip_buffers                    4 64k;
gzip_comp_level                     6;
gzip_disable                  "msie6";
gzip_min_length                 32768;
gzip_proxied                      any;
gzip_static                       off;
gzip_vary                          on;
gzip_types     text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

#---------------------------------------------#
# Указание временных каталогов
#---------------------------------------------#

client_body_temp_path   "%sprogdir%/userdata/temp" 1 2;
fastcgi_temp_path       "%sprogdir%/userdata/temp" 1 2;
proxy_temp_path         "%sprogdir%/userdata/temp" 1 2;
scgi_temp_path          "%sprogdir%/userdata/temp" 1 2;
uwsgi_temp_path         "%sprogdir%/userdata/temp" 1 2;

#---------------------------------------------#
# Конфигурация SSL
#---------------------------------------------#

ssl_certificate         "%sprogdir%/userdata/config/server.crt";
ssl_certificate_key     "%sprogdir%/userdata/config/server.key";
ssl_ciphers             HIGH:!aNULL:!MD5;
ssl_session_cache       builtin:5000;
ssl_prefer_server_ciphers     on;

#---------------------------------------------#
# FastCGI PHP
#---------------------------------------------#

%streams%

#---------------------------------------------#
# Первичный виртуальный хост "по умолчанию"
#---------------------------------------------#

server {
    listen %ip%:%httpport%  default_server;
	listen %ip%:%httpsport% default_server ssl;
    location / {
      root   %sprogdir%/modules/system/html/default;
      index  index.html;
    }
# Не удаляйте следующую строку конфигурации!
include "%sprogdir%/userdata/temp/config/%httpdriver%_url.conf";
}

#---------------------------------------------#
# Конец конфигурации хоста "по умолчанию"
#---------------------------------------------#

include "%sprogdir%/nginx.conf/*.conf";


#---------------------------------------------#
# Начало шаблона конфигурации хоста
#---------------------------------------------#

server {
listen %ip%:%httpport%;
listen %ip%:%httpsport% ssl;
server_name %host% %aliases%;
#if ($request_method !~* ^(GET|HEAD|POST|DELETE)$ ){return 403;}
location ~ /\. {deny all;}
%limit%

location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
}

location ~ \.php$ {
    root           "%hostdir%";
    try_files      $uri =404;
    # if (!-e $document_root$document_uri){return 404;}    
    fastcgi_pass   backend;
    fastcgi_index  index.php;
    fastcgi_param  TMP    "%sprogdir%/userdata/temp";
    fastcgi_param  TMPDIR "%sprogdir%/userdata/temp";
    fastcgi_param  TEMP   "%sprogdir%/userdata/temp";
    fastcgi_buffers 4 64k;
	fastcgi_connect_timeout 1s;
	fastcgi_ignore_client_abort off;
    fastcgi_next_upstream timeout;
    fastcgi_read_timeout 3000s;
	fastcgi_send_timeout 3000s;  
    fastcgi_param CONTENT_TYPE       $content_type;
    fastcgi_param CONTENT_LENGTH     $content_length;
    fastcgi_param DOCUMENT_URI       $document_uri;
    fastcgi_param DOCUMENT_ROOT      $document_root;
    fastcgi_param GATEWAY_INTERFACE  CGI/1.1;
	fastcgi_param HTTPS              $https;	
    fastcgi_param QUERY_STRING       $query_string;
    fastcgi_param REQUEST_METHOD     $request_method;
    fastcgi_param REQUEST_URI        $request_uri;    
    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        $host;
    fastcgi_param SERVER_PROTOCOL    $server_protocol;
    fastcgi_param SERVER_SOFTWARE    nginx;
    fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME        $fastcgi_script_name;
}

# Не удаляйте следующую строку конфигурации!
include "%sprogdir%/userdata/temp/config/%httpdriver%_url.conf";
}

#---------------------------------------------#
# Конец шаблона конфигурации хоста
#---------------------------------------------#
  • Вопрос задан
  • 3107 просмотров
Решения вопроса 2
@neol
В настоящий момент в качестве метода обработки соединений используется только select(), поэтому не стоит ожидать высокой производительности и масштабируемости. В силу этого и ряда других известных проблем версия nginx под Windows рассматривается пока как бета-версия.

nginx.org/ru/docs/windows.html
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Поставьте виртуалку с любым Linux, вероятнее всего будет работать быстрее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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