古いUnixサーバーでホストされているある種の仮想ホストにリンクするリバースプロキシモードでhaproxy(1.5.8)を構成しようとしています。 haproxyはDMZおよびLAN上のWebサーバーにあります。
基本的に私は欲しい:
https://a.domain.com/lo -> http://a.b.c.d:5000/lo
https://a.domain.com/lp -> http://a.b.c.d:5500/lp
デフォルトでは、Unixサーバーは http:// abcd:5000 / に接続しようとするとvirtualhostエラーをスローし、 http:// abcd:を開くとWebページを表示します。 5000/lo 。
frontend ft1
mode http
option forwardfor
bind *:443 ssl crt /etc/ssl/certs.pem
use_backend bk_Lo if { path_beg /lo }
use_backend bk_Lp if { path_beg /lp }
default_backend bk_Lo
backend bk_Lo
mode http
server lo a.b.c.d:5000
backend bk_Lp
mode http
server lp a.b.c.d:5500
しかし、URLを正しく書き換える方法がわからないので、常にエラー503で終了します。これはhaproxyでも可能ですか?誰かがこれを解決するために私を正しい方向に向けることができますか?
ご協力ありがとうございました。
ダブロン
これをバックエンドセクションに追加する必要があります。
http-request set-header Host a.b.c.d
frontend ft1
mode http
option forwardfor
bind *:443 ssl crt /etc/ssl/certs.pem
use_backend bk_Lo if { path_beg /lo }
use_backend bk_Lp if { path_beg /lp }
default_backend bk_Lo
backend bk_Lo
mode http
server lo a.b.c.d:5000
**http-request set-header Host a.b.c.d**
backend bk_Lp
mode http
server lp a.b.c.d:5500
**http-request set-header Host a.b.c.d**
global
log 127.0.0.1 local0
maxconn 2000
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
log global
option dontlognull
option redispatch
retries 3
timeout connect 5000s
timeout client 1200000s
timeout server 1200000s
frontend http_proxy
mode http
bind *:443 ssl crt /etc/ssl/cert_for_a.pem crt /etc/ssl/cert_for_b.pem
option httplog
option http-server-close
acl a_domain_url hdr_beg(Host) a.domain.com
use_backend bk_Lo if { path_beg /lo }
acl work_url hdr_beg(Host) b.domain.com
use_backend bk_Lp if { path_beg /lp }
backend bk_Lo
mode http
server lo a.b.c.d:5000
backend bk_Lp
mode http
server lo a.b.c.d:5500