2016-11-23 2 views
0

Мы используем NGINX в качестве обратного прокси для интеграции с веб-сайтами. Все запросы на них пересылаются на один веб-сайт или другой на основе URL-адреса. Мы ожидали небольшой потери производительности из-за дополнительных «перелетов», но производительность очень плохая. Загрузка css, js и изображений занимает 1-2 секунды на ресурс. Сервер NGINX равен < 1% загрузки процессора.NGINX as reverse Прокси-сервер замедляет работу сайта

Если я исследую с Firebug я вижу огромный блок и время ожидания в Чистом панели: Performance via NGINX as reverse proxy

Если мы идем оригинальный веб-сайт непосредственно, это гораздо быстрее (~ 100 мс): enter image description here

Что может быть причиной этого «дросселирования»?

Это мой сайт конфигурации:

server { 
     listen 80; 
     server_name *.mysite.nl; 
     return 301 http://www.mysite.nl$request_uri; 
} 

server { 
    listen 80; 
    root /var/www/; 
    index index.php index.html index.htm index.asp index.aspx; 
    server_name www.mysite.nl; 
    return 301 https://$server_name$request_uri; 
    include includes/mysite.nl-redirects.conf; 

    location/{ 
    return 301 https://$server_name$request_uri; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
    proxy_pass http://100.6.185.172:80; 
    proxy_set_header  X-Forwarded-Proto "http"; 
    } 
    location /account { 

    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
    proxy_pass http://platform.mysite.nl:80; 
    } 
    location /contentowner { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
    proxy_pass http://platform.mysite.nl:80; 
    } 
} 

server { 
     listen 443; 
     root /var/www/; 
     index index.php index.html index.htm index.asp index.aspx; 
     server_name www.mysite.nl; 
     ssl_certificate   /etc/ssl/private/mysite.nl/cert.crt; 
     ssl_certificate_key  /etc/ssl/private/mysite.nl/cert.key; 
     ssl_client_certificate /etc/ssl/private/mysite.nl/ca.crt; 
     ssl on; 
     ssl_session_cache builtin:1000 shared:SSL:10m; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
     ssl_prefer_server_ciphers on; 

    include includes/mysite.nl-redirects.conf; 

     location/{ 
     proxy_set_header  X-Forwarded-Proto "https"; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header Host $host; 
     proxy_pass https://100.6.185.172:443; 
     } 
     location /account/ { 
     #return 301 http://$server_name$request_uri; 
     proxy_set_header  X-Forwarded-Proto "https"; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header Host $host; 
     proxy_pass http://platform.mysite.nl:80; 
     } 
     location /contentowner/ { 
     #return 301 http://$server_name$request_uri; 
     proxy_set_header  X-Forwarded-Proto "https"; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header Host $host; 
     proxy_pass http://platform.mysite.nl:80; 
     } 
} 

И это мой nginx.config:

user www-data; 
worker_processes auto; 
pid /run/nginx.pid; 

events { 
     worker_connections 18000; 
     multi_accept on; 
} 

http { 

     ## 
     # Basic Settings 
     ## 

     sendfile on; 
     tcp_nopush off; 
     tcp_nodelay on; 
     keepalive_timeout 65; 
     types_hash_max_size 2048; 
     server_tokens off; 
     client_max_body_size 5M; 
     #proxy_buffering off; 
     #access_log off; 

     # server_names_hash_bucket_size 64; 
     # server_name_in_redirect off; 

     include /etc/nginx/mime.types; 
     default_type application/octet-stream; 

     ## 
     # SSL Settings 
     ## 

     ssl_dhparam /etc/nginx/ssl/dhparam.pem; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE 
     ssl_prefer_server_ciphers on; 

     ## 
     # Logging Settings 
     ## 

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

     ## 
     # Gzip Settings 
     ## 

     gzip on; 
     gzip_disable "msie6"; 

     gzip_vary on; 
     gzip_proxied any; 
     gzip_comp_level 6; 
     gzip_buffers 16 8k; 
     gzip_http_version 1.1; 
     gzip_min_length 256; 
     gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application$ 

     ## 
     # Virtual Host Configs 
     ## 

     include /etc/nginx/conf.d/*.conf; 
     include /etc/nginx/sites-enabled/*; 
} 

ответ

1

Вы используете HTTP/2 на исходном сервере, а не на обратный прокси-сервер. Увидев количество дополнительных ресурсов, загружаемых вашей страницей, это, по крайней мере, часть проблемы.

+0

Отлично! Мы это изменим! –

+1

Да, ОСНОВНОЕ улучшение в pageload! Благодаря!!! –

Смежные вопросы