Конфигурация балансировщика нагрузки Nginx - PullRequest
0 голосов
/ 26 апреля 2019

Мое требование - балансировка нагрузки двух веб-сервисов ESB, работающих на двух отдельных узлах (10.110.6.29, 10.110.6.45) Я использую nginx и устанавливается в 10.110.6.45.Обычно, когда я отправляю запрос на 10.110.6.45 (port 80), он должен быть одинаково сбалансирован по нагрузке для обоих узлов.

Ниже приведен /etc/nginx/nginx.conf.

user  www;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;    

    sendfile        on;

    keepalive_timeout  65;

    upstream esbhnbwso2.hnb.lk{
    server 10.110.6.45:8280;
    server 10.110.6.29:8280;
    }

    server {
        listen       80;
        server_name  localhost;


        location / {
            proxy_pass http://esbhnbwso2.hnb.lk;
            proxy_http_version 1.1;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

при попыткепозвонить в службу http://10.110.6.45/hnbceftapi Я получаю страницу ниже nginx.Что я делаю неправильно?любая помощь будет очень ценится.

<html>
   <head>
      <meta content="HTML Tidy for Java (vers. 27 Sep 2004), see www.w3.org" name="generator"/>
      <title>404 Not Found</title>
   </head>
   <body bgcolor="white">
      <center>
         <h1>404 Not Found</h1>
      </center>
      <hr/>
      <center>nginx/1.14.2</center>
   </body>
</html>

1 Ответ

0 голосов
/ 30 апреля 2019

После некоторого чтения в интернете я смог заставить работать nginx. Это были мои открытия, мысли делиться этим.

Мне пришлось включить внутренний брандмауэр linux с помощью следующих команд.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent  --zone=public --add-service=https

Эти команды в основном создают открытую зону и разрешают трафик http (80), https (443).

Можно проверить разрешенные порты, выполнив следующую команду.

firewall-cmd --list-ports

Пришлось выполнить приведенную ниже команду, чтобы демон httpd - http (веб-сервер Apache, на котором работает nginx) осуществлял HTTP-связь.

setsebool -P httpd_can_network_connect 1

Эти настройки были необходимы, потому что я работал над Security Enhanced Linux (SELinux). Я не системный администратор, поэтому я не знал об этих конфигурациях.

...