У меня есть кластер поисковых головок 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 направляет запросы на один из узлов? Спасибо.