На самом деле, есть несколько способов достичь этого. Но я не думаю, что в весенней загрузке есть что-то, что можно интегрировать с HAProxy, потому что это два разных процесса, и оба они работают независимо и ничего не связаны друг с другом, как вы, возможно, знаете, что делает весенняя загрузка. И HAProxy является балансировщиком нагрузки, а также прокси-сервером для процессов TCP и HTTP, которые распределены по нескольким серверам.
Это объясняет первую часть вашего вопроса.
Теперь, на самом деле, как вы можете достичь этого, полностью зависит от того, как вы хотите настроить это.
Запускать отдельные приложения как службу, как вы, и направлять трафик c к каждому из них на основе URL.
Еще одно развертывание отдельные приложения на одном tomcat и с помощью контекстного пути в свойствах вашего приложения вы можете перенаправить traffi c из внешнего мира на tomcat, а tomcat позаботится обо всем.
И там могут быть другие способы сделать это, кто-то может добавить в будущем к этому ответу. Но в любом случае для этого вам нужно использовать прокси-сервер, это может быть либо HAProxy, Nginx, либо что-то, что соответствует цели.
Итак, принимая ваш подход, давайте предположим, что ваши приложения работают на порт 8081, 8082, 8083. Ваша настройка HAProxy должна выглядеть примерно так.
frontend www_http
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/certs/mycompany.pem
# passing on that browser is using https
reqadd X-Forwarded-Proto:\ https
# for Clickjacking
rspadd X-Frame-Options:\ SAMEORIGIN
# prevent browser from using non-secure
rspadd Strict-Transport-Security:\ max-age=15768000
redirect scheme https code 301 if !{ ssl_fc }
stats enable
stats refresh 30s
stats show-node
stats realm Haproxy\ Statistics
stats uri /haproxy?stats
acl app1 hdr(host) -i app1.mycompany.com
acl app2 hdr(host) -i app2.mycompany.com
acl app3 hdr(host) -i app3.mycompany.com
# Just incase if you are using path instead of subdomain. But it's commented.
# acl app1 url_beg /app1
# acl app2 url_beg /app2
# acl app3 url_beg /app3
use_backend app_1_backend if app1
use_backend app_2_backend if app2
use_backend app_3_backend if app3
# backend for app 1
backend app_1_backend
timeout client 300000
timeout server 300000
redirect scheme https if !{ ssl_fc }
server app-1 127.0.0.1:8081 check
http-response set-header X-TS-Server-ID %s
# backend for app 2
backend app_2_backend
timeout client 300000
timeout server 300000
redirect scheme https if !{ ssl_fc }
server app-2 127.0.0.1:8082 check
http-response set-header X-TS-Server-ID %s
# backend for app 3
backend app_3_backend
timeout client 300000
timeout server 300000
redirect scheme https if !{ ssl_fc }
server app-3 127.0.0.1:8083 check
http-response set-header X-TS-Server-ID %s
Это базовая настройка c, но вы можете добавить свои параметры и изменить все, как вам нравится.
Надеюсь, это поможет.