2016-05-30 2 views
2

У меня есть рубиновый веб-приложение на рельсах, которое не настроено на многопоточность. В конфигурации nginx я настроил восходящий блок для балансировки нагрузки. Как это:Балансировка нагрузки - веб-приложения с NGINX

upstream myapp { 
    server 127.0.0.1:3075; 
    server 127.0.0.1:3076; 
    server 127.0.0.1:3077; 
} 

Я создал также 3 процесс тонкий с 3 портами (3075,3076,3077).

Я думаю, что когда мое первое приложение «127.0.0.1.3075» занято, все запросы будут автоматически сбалансированы для моего второго приложения «127.0.0.1:3076» или третьего.

Но балансировка нагрузки не работает, хотя мои три веб-приложения работают правильно независимо.

Пожалуйста, помогите найти ошибки.

------------------- Nginx конфигурации --------------------

upstream myapp_hosts { 
    server 127.0.0.1:3075; 
    server 127.0.0.1:3076; 
    server 127.0.0.1:3077; 
} 

server { 
    listen  80; 
    server_name myapp.mydomain.com; 
    rewrite ^(.*)$ https://myapp.mydomain.com$1 permanent; # rewrite for https, i have another bloc server listen 443. 
    access_log /var/log/nginx/myapp.access.log; 

    location/{ 
      proxy_pass   http://myapp_hosts/; 
      proxy_connect_timeout 900; 
      proxy_send_timeout  900; 
      proxy_read_timeout  900; 
      proxy_buffer_size 16k; 
      proxy_buffers  32 16k; 
      proxy_busy_buffers_size 64k; 
    } 
    location /public { 
      root /var/www/nemo/; 

    } 
    location /images { 
      root /var/www/nemo/assets/; 

    } 
    location /javascripts { 
      root /var/www/nemo/assets/; 

    } 
    location /stylesheets { 
      root /var/www/nemo/assets/; 

    } 

    client_max_body_size 10m; 
    client_body_buffer_size 128k; 
    client_header_buffer_size 64k; 
} 
+0

_Немная балансировка нагрузки не является документом какого-либо доказательства? Как вы его тестируете? –

+0

Я ответил на мой вопрос с полной конфигурацией nginx Спасибо –

ответ

1

Какова цель вашего переписывания?

rewrite ^(.*)$ http://myapp.mydomain.com$1 permanent; 

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

Попробуйте удалить эту линию и посмотреть, не работает ли она.

+0

Спасибо за ваш ответ, Да, вы правы, переписываете для https, весь запрос http будет перенаправлен на https, у меня есть еще один блок-сервер, который слушает 443. Поэтому я могу " t удалите его. –

+0

Что такое «блок-сервер»? В любом случае, вы должны иметь свою конфигурацию прокси. Остальная часть вашей конфигурации nginx бесполезна при этом переписывании. – sjagr

+0

Да, вы правы, я могу удалить все местоположения в 80. Я повторяю их в 443. –

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