HA Proxy TCP баланс с оригинальным именем хоста - PullRequest
0 голосов
/ 02 июля 2018

У меня есть кластер поисковых головок Splunk с 3 узлами, и я пытаюсь настроить экземпляр прокси-сервера HA для балансирования имен пользователей в одном из этих 3 узлов поисковых головок.

  • Splunk 7.1
  • HA Proxy 1.5.18
  • Centos 7

Сам прокси-сервер работает и маршрутизирует для исправления узлов SH в зависимости от работоспособности ответвления (запуск ответвления на порту 8300)

Проблема в том, что если я перейду к «splunk.company.local» (DNS-имя HA-прокси), HAproxy перенаправит пользователя на один из 3 узлов, но не сохранит «splunk.company.local» в URL-адресе. вместо этого URL-адрес меняется на "splunksh01.company.local" и т. д.,

Я не могу понять, как получить одно липкое имя, поэтому пользователь всегда находится под URL-адресом «splunk.company.com» и никогда не видит фактические имена хостов узла SH,

haproxy.cfg

# This file managed by Puppet
global
  daemon  
  debug  true
  group  haproxy
  log  10.185.20.168 local0
  pidfile  /var/run/haproxy.pid
  stats  socket /var/lib/haproxy/stats
  user  haproxy

defaults
  log  global
  maxconn  8000
  mode  tcp
  option  redispatch
  retries  3
  timeout  connect 15s
  timeout  client 50s
  timeout  server 50s
  timeout  check 10s
  timeout  server 1m

listen splunk
  bind 0.0.0.0:80 

  mode tcp
  balance source
  server splunksh01.company.local 10.185.20.173:80 check port 8300
  server splunksh02.company.local 10.185.20.174:80 check port 8300
  server splunksh03.company.local 10.185.20.176:80 check port 8300

Теперь на каждом узле SH я запускаю Splunk через обратный прокси-сервер Apache,

cat /etc/httpd/conf.d/splunk.conf

<VirtualHost *:443>
  ServerName splunk

  ## Logging
  ErrorLog "/var/log/httpd/splunk-443_error_ssl.log"
  ServerSignature Off
  CustomLog "/var/log/httpd/splunk-443_access_ssl.log" combined 

  ## Request header rules
  ## as per http://httpd.apache.org/docs/2.2/mod/mod_headers.html#requestheader
  RequestHeader set X-Forwarded-Proto "https"

  ## Proxy rules
  ProxyRequests Off
  ProxyPreserveHost Off
  ProxyPass / https://splunksh01.company.local:8300/
  ProxyPassReverse / https://splunksh01.company.local:8300/

  ## SSL directives
  SSLEngine on
  SSLCertificateFile      "/etc/puppetlabs/puppet/ssl/certs/splunksh01.company.local.pem"
  SSLCertificateKeyFile   "/etc/puppetlabs/puppet/ssl/private_keys/splunksh01.company.local.pem"

  # SSL Proxy directives
  SSLProxyEngine On
</VirtualHost>

Как мне сохранить то же имя хоста, когда HAproxy направляет запросы на один из узлов? Спасибо.

...