﻿# Настройка HAProxy для внешнего портала

> [HTML Version](haproxy-external-portal.html)

В данной статье рассматривается пример настройки HAProxy для доступа к внешнему порталу по выделенному доменному имени через обратный прокси.

````
Начало внимание 

````
Перед началом настройки включите и активируйте [внешний портал](service-portal.md).

````
Конец внимание

````
Также рекомендуем настроить HAProxy для работы ELMA365 через обратный прокси в соответствии с инструкцией, представленной в статье [«Настройка HAProxy для работы ELMA365 через обратный прокси»](haproxy-elma365.md).

Для примера используются следующие данные:

- **/\_portal/zakazy** — название раздела с включённым порталом;

- **portal-elma365client.domain.com** — доменное имя внешнего портала;

- **192.168.1.10** — IP-адрес сервера с приложением ELMA365.

Конфигурация обратного прокси для доступа к внешнему порталу по выделенному домену на примере HAProxy:

````
global  
   maxconn 10000  
   log /dev/log   local0  
   log /dev/log   local1 notice  
   chroot /var/lib/haproxy  
   stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners  
   stats timeout 30s  
   user haproxy  
   group haproxy  
   daemon  
  
   ca-base /etc/ssl/certs  
   crt-base /etc/ssl/private  
  
        ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384  
        ssl-default-bind-ciphersuites TLS\_AES\_128\_GCM\_SHA256:TLS\_AES\_256\_GCM\_SHA384:TLS\_CHACHA20\_POLY1305\_SHA256  
        ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets  
  
defaults  
   log   global  
   mode   http  
   option   httplog  
   option   dontlognull  
   timeout connect 5000  
   timeout client  50000  
   timeout server  50000  
   errorfile 400 /etc/haproxy/errors/400.http  
   errorfile 403 /etc/haproxy/errors/403.http  
   errorfile 408 /etc/haproxy/errors/408.http  
   errorfile 500 /etc/haproxy/errors/500.http  
   errorfile 502 /etc/haproxy/errors/502.http  
   errorfile 503 /etc/haproxy/errors/503.http  
   errorfile 504 /etc/haproxy/errors/504.http  
  
frontend elma365\_portal  
       mode http  
       bind \*:80  
       bind \*:443 ssl crt /etc/ssl/private/elma365.pem  
       redirect scheme https code 301 unless \{ ssl\_fc \}  
       maxconn 10000  
  
       acl elma365 hdr(host) -i portal-elma365client.domain.com  
       use\_backend elma365\_server if elma365  
  
backend elma365\_server  
       mode http  
       balance leastconn  
       option forwardfor  
       option httpclose  
  
       acl elma365\_portal\_url url\_beg -i /\_portal/zakazy  
       acl elma365\_redirect url -i /index.html  
       acl elma365\_portal\_addr url\_reg -i ^.+.(jpg|jpeg|gif|png|svg|ico|js|woff|woff|woff2|css|po)\$  
       acl elma365\_portal\_addr url\_beg -i /ws /api /s3elma365 /guard /assets  
  
       http-request redirect code 301 prefix /\_portal/zakazy if elma365\_redirect OR \!elma365\_portal\_url \!elma365\_portal\_addr  
       http-request deny if \!elma365\_portal\_url \!elma365\_portal\_addr \!elma365\_redirect  
  
       server elma365-1 192.168.1.10:443 verify none check ssl

````


В процессе установки или при реконфигурации в поле **Enter ELMA365 domain name (FQDN) or IP address** необходимо прописать внешний домен **elma365client.domain.com**, по которому будет доступна ELMA365, и включить параметр **SSL termination**.