Как настроить балансировщик нагрузки Nginx для кластера WSO2 IS EI BPS на одном сервере?

#wso2

#wso2

Вопрос:

У меня есть один сервер с WSO2 IS, EI, BPS и 2-й сервер с IS, EI, BPS. Я хочу создать кластер с балансировщиком нагрузки. IS использует порт 9444, EI использует порт 9443, BPS использует порт 9445. Я не могу правильно настроить Nginx для балансировки нагрузки для 3 систем, потому что все системы используют разные порты. Я не нашел никакой информации в документации. Где я должен записать разные порты IS, EI, BPS в конфигурации Nginx, чтобы открыть веб-страницу LB с разными портами для IS, EI, BPS?

Я настроил Nginx LB для кластера IS, он работает. Затем я настроил Nginx LB для EI, это работает. Затем BPS. Я не знаю, как объединить эти конфигурации в 1 конфигурацию.

Настройка для EI. Конфигурации для IS и BPS те же, но с другими портами.

 upstream example.com (SHOULD I WRITE 9443 PORT HERE?) {
    server 1.1.1.1:9443;
    server 1.1.1.2:9443;
    ip_hash;}
server {
    listen 443 (SHOULD I WRITE 9443 PORT HERE?);
    server_name example.com (SHOULD I WRITE 9443 PORT HERE?);
    ssl on;
    ssl_certificate /etc/nginx/ssl/cert.cer;
    ssl_certificate_key /etc/nginx/ssl/key.key;
    ssl_client_certificate /etc/nginx/ssl/ca.pem;
    ssl_verify_client on;
    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_read_timeout 5m;
        proxy_send_timeout 5m;
        proxy_pass https://example.com (SHOULD I WRITE 9443 PORT HERE?);
        proxy_ssl_certificate /etc/nginx/ssl/cert.cer;
        proxy_ssl_certificate_key /etc/nginx/ssl/key.key;
        proxy_ssl_session_reuse on;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
}}
  

Ответ №1:

Вы можете определить 3 имени хоста для серверов, как показано ниже.

  • bps.wso2.com
  • is.wso2.com
  • ei.wso2.com

Затем вы можете определить 3 восходящих потока и 3 сервера. Пример конфигурации можно найти вhttps://docs.wso2.com/display/AM210/Configuring the Proxy Server and the Load Balancer

Комментарии:

1. хорошо, спасибо. Таким образом, нет способа сделать это с портами после имени сервера, например.com: 9443, да?

2. Вы также можете использовать порты. измените порт 443 на 9443

3. Я пытался сделать это с помощью портов. Я сменил порт 443 на 9443, но после этого я получаю ошибки в nginx: слишком много открытых файлов и недостаточно worker_connections. Я увеличил необходимые значения для устранения этих ошибок, но все равно получаю ошибки.