Я новичок в системах NGINX и WebSocket, но, согласно моим требованиям к проекту, мне нужно проверить некоторые сложные вещи, чтобы закончить.Nginx load balancer websocket issue
Я пытаюсь создать один пример с помощью NGINX, который обрабатывает мой WebSocket (порт: 1234) и HTTP-запросы (порт: 80), используя тот же Url (url load balancer).
Я использую три сервера NGINX, один как Load Balancer (10.0.0.163) и другие два в качестве моего сервера приложений, где я установил свои реальные API, 10.0.0.152 и 10.0.0.154 соответственно. Прямо сейчас, я настроил WebSocket на своих серверах приложений.
В соответствии с приведенной выше конфигурацией все мои запросы будут передаваться через 10.0.0.163 (балансировщик нагрузки), и его прокси-сервер передает запрос (HTTP/WebSocket) на мой сервер приложений (10.0.0.152/154).
Примечание: Каждый сервер приложений содержит отдельный Nginx, PHP, WebSocket
Здесь по умолчанию (место нахождения:/и т.д./Nginx/сайты-доступные/файл) для 10.0.0.154 сервера, который обрабатывает WebSocket и HTTP запросы на тот же домен.
server{
listen 80;
charset UTF-8;
root /var/www;
index index.html index.htm index.php
server_name localhost 10.0.0.154 ;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
location/{
try_files $uri $uri/ @proxy; autoindex on;
}
location @proxy{
proxy_pass http://wb1;
}
location =/ {
proxy_pass http://wb;
proxy_http_version 1.1;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer $http_referer;
proxy_redirect off;
}
}
После файлов по умолчанию (место нахождения:/и т.д./Nginx/сайты-доступные /) для балансировки нагрузки на 10.0.0.163.
upstream wb{
server 10.0.0.154;
server 10.0.0.152;
}
server{
listen 80;
charset UTF-8;
root /var/www;
index index.html index.htm index.php
server_name 10.0.0.163 ;
location/{
try_files $uri $uri/ @proxy; autoindex on;
}
location @proxy{
proxy_pass http://wb;
}
location =/ {
proxy_pass http://wb;
proxy_http_version 1.1;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer $http_referer;
proxy_redirect off;
}
}
Я обнаружил, что, балансировки нагрузки работает должным образом для HTTP запросов, но это не может продолжать свои запросы WebSocket к серверу приложений.
Я не знаю, что я здесь отсутствует .. Если вы, ребята, можете помочь мне было бы здорово appriciate
Какую версию nginx вы используете? – VBart
@VBart Я использую версию nginx-1.4.1. – Rizvan
@VBart - После отладки кода я получаю соединение, установленное и отключенное через 30 секунд. Я получаю сообщение об ошибке «Ответчик не отвечает». – Rizvan