2017-01-25 2 views
0

Я создал сайт Node.js, который использует аутентификацию Google. Сайт используется одновременно 100 пользователями, которые влияют на производительность. Поэтому я понимаю, что Nginx может помочь в масштабировании сайта, создав несколько экземпляров приложения Node.js в нескольких портах, а затем мы используем Nginx как балансировщик нагрузки.Балансировка нагрузки Nginx с помощью Node.js и Google Oauth

Итак, я настроил Nginx, но проблема в том, что доза не работает с аутентификацией Google. Я могу видеть первую страницу своего сайта, и я могу войти в систему через Google, но доза не работает после этого момента.

Любые предложения относительно того, что может отсутствовать, чтобы сделать эту работу.

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

upstream my_app 
{ 
    least_conn;     # Use Least Connections strategy 
    server ip:3001;  # NodeJS Server 2 I changed the actual ip 
    server ip:3002;  # NodeJS Server 3 
    server ip:3003;  # NodeJS Server 4 
    server ip:3004;  # NodeJS Server 5 
    keepalive 256; 
} 


server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    expires epoch; 
    add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate"; 
    server_name ip; 
    access_log /var/log/nginx/example.com-access.log; 
    error_log /var/log/nginx/example.com-error.log error; 

    # Browser and robot always look for these 
    # Turn off logging for them 
    location = /favicon.ico { log_not_found off; access_log off; } 
    location = /robots.txt { log_not_found off; access_log off; } 
    # pass the request to the node.js server 
    # with some correct headers for proxy-awareness 
    location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_buffers 8 16k; 
     proxy_buffer_size 32k; 
     proxy_pass http://my_app ; 
     proxy_redirect off ; 
     add_header Pragma "no-cache"; 

     # Handle Web Socket connections 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     } 

} 

Я только начал изучать Nginx, я проверил, когда на входе есть только один IP-адрес, и она работает. то есть работает как обратный прокси, но не как балансировщик нагрузки, и моя догадка связана с природой аутентификации Google.

И ошибка, которую я получаю в журнале ошибок, отключена. Спасибо.

+2

Привет, Кэти, почему бы вам не показать нам какой-нибудь код, чтобы понять, что вы пробовали до сих пор? – Flip

+0

Вы имеете в виду конфигурацию Nginx? –

ответ

0

Я выясню, что случилось. метод балансировки нагрузки по наименьшей стоимости не был правильным выбором, так как доза не сохранялась. Я изменил его на hash $ remote_addr или hash_ip, и он работает.

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