Задать вопрос
@Drno

Почему соединение через haproxy идет не с первого раза?

Дано. Haproxy, за ним Nextcloud, OpenVPN север, SSTP сервер
Проблема - Некстклауд после 5 минут неактивности пишет - потеряно подключение к серверу. ПРи обновлении - 1 раз - не доступен, 2й раз обновляешь - соединяется

Тоже самое с ОпенВПН - подключается со второго раза, по логу на ПК видно, первое подключение не проходит, при повторе - подключается.

Мое мнение проблема в проксе, т.к. напрямую всё работает нормально.
ВОт конфиг - что надо поправить?

global
	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

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
        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
maxconn 2048
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
option forwardfor
option http-server-close
###################################
frontend www-http
bind site.ru:80
reqadd X-Forwarded-Proto:\ http
default_backend www-backend
frontend www-https
bind site.ru:443 ssl crt /etc/haproxy/fullchain1.pem
reqadd X-Forwarded-Proto:\ https
# max-age is mandatory 
    # 16000000 seconds is a bit more than 6 months
http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"
#################################
default_backend www-backend
backend www-backend
redirect scheme https if !{ ssl_fc }
server www-1 127.0.0.1:82 check
#server www-2 vn2_pr_IP:80 check
################################
frontend ovpn
    mode tcp
    option tcplog
    bind vpnblock.site.ru:443
#    bind *:1194
    default_backend ovpn

backend ovpn
    mode tcp
    server vpn-local 127.0.0.1:65001 check fall 3 rise 2
################################
frontend sstp
    mode tcp
    option tcplog
bind vpnblock1.site.ru:443 crt /etc/haproxy/fullchain1.pem
    default_backend sstp
backend sstp
    mode tcp
    server vpn-local 127.0.0.1:4433 check fall 3 rise 2
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Средний 8 комментариев
Пригласить эксперта
Ответы на вопрос 1
@Drno Автор вопроса
Если кому то понадобится...
переадресация разных доменов на разные SSTP сервера. собственно веб сервер сюда добавляется по той же логике.
сертификаты Haproxy не потребовались, тут они только на SSTP стоят
При https - будет нужен

option forwardfor
option http-server-close
#######################
frontend sstp
    mode tcp
    option tcplog
bind *:443
#crt /etc/haproxy/aa.pem
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }
acl is_aa.site.ru req_ssl_sni -i aa.site.ru
acl is_ab.site.ru req_ssl_sni -i ab.site.ru
use_backend aa.site.ru if is_aa.site.ru
use_backend ab.site.ru if is_ab.site.ru

#    use_backend www-backend if { req_ssl_sni -m found }
#    default_backend sstp
#
backend aa.site.ru
mode tcp
#option ssl-hello-chk
server vpn-local 1.1.1.1:443 check fall 3 rise 2

backend ab.site.ru
mode tcp
#option ssl-hello-chk
server vpn-local1 2.2.2.2:443 check fall 3 rise 2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы