У меня есть проблема. У меня есть 2 рабочих сервера с работающим NGINX на 2 доменах. производство-app1.example.com
и производство-app2.example.com
но когда я добавляю их в балансировщик haproxy и использую только первый или второй, второй работает, но первый возвращает страницу приветствия nginx.
Конфигурация Nginx одинакова на обоих, отличается только имя сервера
. Я не могу понять, где проблема.
Это моя конфигурация haproxy:
Глобальный
максконн 500000
журнал /dev/лог локальный0
журнал /dev/log local1 уведомление
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 уровень администратора expose-fd listeners
статистика тайм-аут 30s
пользовательский прокси
группа haproxy
демон
# Расположение материалов SSL по умолчанию
ca-база /etc/ssl/сертификаты
crt-база /etc/ssl/частный
# Шифры по умолчанию для использования в прослушивающих сокетах с поддержкой SSL.
# Для получения дополнительной информации см. ciphers(1SSL). Этот список взят из:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# Альтернативный список с дополнительными директивами можно получить из
# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-параметры без sslv3
значения по умолчанию
журнал глобальный
режим http
опция httplog
опция
опцион вперед для
опция http-server-close
тайм-аут соединения 10 сек.
тайм-аут клиента 30 сек.
таймаут сервера 120с
файл ошибок 400 /etc/haproxy/errors/400.http
файл ошибок 403 /etc/haproxy/errors/403.http
файл ошибок 408 /etc/haproxy/errors/408.http
файл ошибок 500 /etc/haproxy/errors/500.http
файл ошибок 502 /etc/haproxy/errors/502.http
файл ошибок 503 /etc/haproxy/errors/503.http
файл ошибок 504 /etc/haproxy/errors/504.http
интерфейс http_front
привязать *:80
статистика uri /haproxy?stats
default_backend http_back
серверная часть http_back
источник баланса
cookie SERVERUSED вставить косвенный nocache
режим http
http-запрос set-header X-Client-IP %[src]
опция httpchk HEAD / HTTP/1.0
сервер production-app1.example.com production-app1.example.com:80 проверить падение 2 рост 2
сервер production-app2.example.com production-app2.example.com:80 проверить падение 2 рост 2
Это конфиг nginx в 1 приложении (не работает)
хозяин:
вышестоящее приложение_производство {
# Путь к файлу Puma SOCK, указанному ранее
сервер unix:/var/www/production/app/shared/tmp/sockets/puma.sock fail_timeout=0;
}
сервер {
server_name production-app1.example.com;
корень /var/www/production/app/shared/public;
try_files $uri/index.html $uri @app;
местоположение @приложение {
proxy_pass http://app_production;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Хост $http_host;
прокси_перенаправление выключено;
}
#Â регистрация
#
журнал_доступа /var/www/log/production/app/access.log;
журнал_ошибок /var/www/log/production/app/error.log;
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
#keepalive_timeout 10;
слушать 80;
}
и глобальная конфигурация nginx
# конфиг nginx рабочего сервера
пользовательское развертывание;
рабочие_процессы 2; # лучшая производительность с пиками ввода-вывода
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log предупреждение;
pid /var/run/nginx.pid;
События
{
рабочие_подключения 4096;
}
http
{
включить /etc/nginx/mime.types;
default_type application/octet-stream;
## Настройка HTTP2
http2_max_concurrent_push 512;
http2_max_concurrent_streams 512;
http2_chunk_size 16 КБ;
http2_body_preread_size 256 КБ;
connection_pool_size 5600;
# keepalive нужно это
прокси_http_версия 1.1;
proxy_set_header Соединение "";
отправить файл включен;
tcp_nopush включен;
tcp_nodelay включен;
keepalive_timeout 360;
keepalive_requests 10000;
типы_хэш_макс_размер 2048;
server_names_hash_bucket_size 128;
large_client_header_buffers 8 5600;
# время ожидания прокси
proxy_connect_timeout 120 с;
proxy_send_timeout 300 с;
proxy_read_timeout 300 с;
send_timeout 440 с;
# буферизация и кеширование
proxy_cache_path /tmp/nginx-cache keys_zone=nginx-cache:10m loader_threshold=300 loader_files=200 max_size=200m;
proxy_cache nginx-кэш;
proxy_buffers 40 16k;
proxy_buffer_size 512 КБ;
proxy_busy_buffers_size 512 КБ;
proxy_cache_valid 200 302 10 м;
proxy_cache_valid 404 1 м;
# Настройки SSL (будут добавлены)
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$статус $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'время_запроса=$время_запроса'
'upstream_response_time=$upstream_response_time'
'upstream_connect_time=$upstream_connect_time'
'upstream_header_time=$upstream_header_time';
access_log /var/log/nginx/access.log main buffer=2048k flush=120;
включить /etc/nginx/conf.d/*.conf;
включить /etc/nginx/sites-enabled/*;
}
Второй имеет такую же конфигурацию, но работает как шарм.
Спасибо за помощь.