<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Qlik Sense Behind HA proxy in Management &amp; Governance</title>
    <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943302#M22464</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/140785"&gt;@VRaducan&lt;/a&gt;&amp;nbsp; make sure that the timeout settings for the default Qlik Sense proxy and your reverse proxy are aligned&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Increase-session-timeout-in-Qlik-Sense/ta-p/1713275" target="_self"&gt;Increase-session-timeout-in-Qlik-Sense&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Jun 2022 10:49:57 GMT</pubDate>
    <dc:creator>Eugene_Sleator</dc:creator>
    <dc:date>2022-06-14T10:49:57Z</dc:date>
    <item>
      <title>Qlik Sense Behind HA proxy</title>
      <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943222#M22463</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;we got a customer which is trying to user haproxy and Qlik Sense.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The login works correctly on the QMC but looks like when going into the Hub, we get Connection Lost immediately after logging in.&lt;/P&gt;
&lt;P&gt;The configuration done by the customer is with 2 HA proxy Balanced by a Load Balancer.&lt;/P&gt;
&lt;P&gt;The config file for both of the Haproxy environments is at follows.&lt;/P&gt;
&lt;P&gt;1 QSense Cluster with Central and FailOver Candiate&lt;/P&gt;
&lt;P&gt;Host allow whitelist inserted both the HAproxy servers IPs on Virtual Proxies and the LoadBalancer FQDN&lt;/P&gt;
&lt;P&gt;Send KeepAlive Check configured on both the Proxie services of the nodes with 5 seconds of timespan.&lt;/P&gt;
&lt;P&gt;QlikSense has got the http port 80 enabled.&lt;/P&gt;
&lt;P&gt;I've tried to read the documentation of HA proxy and other links here regarding this kind of configuration but it's still not working. Could it be that the parameters to switch from http to wss are incorrect?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in advance if someone knows something.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# Example configuration for a possible web application. See the&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# full configuration options online.&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# &lt;A href="https://www.haproxy.org/download/1.8/doc/configuration.txt" target="_blank" rel="noopener"&gt;https://www.haproxy.org/download/1.8/doc/configuration.txt&lt;/A&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# Global settings&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;global&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# to have these messages end up in /var/log/haproxy.log you will&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# need to:&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# 1) configure syslog to accept network log events. This is done&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# by adding the '-r' option to the SYSLOGD_OPTIONS in&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# /etc/sysconfig/syslog&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# 2) configure local2 events to go to the /var/log/haproxy.log&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# file. A line like the following can be added to&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# /etc/sysconfig/syslog&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# local2.* /var/log/haproxy.log&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#log 127.0.0.1 local2&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;log /dev/log local0&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;chroot /var/lib/haproxy&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;pidfile /var/run/haproxy.pid&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;maxconn 4000&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;user haproxy&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;group haproxy&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;daemon&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;# turn on stats unix socket&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stats socket /var/lib/haproxy/stats&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;# utilize system-wide crypto-policies&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;ssl-default-bind-ciphers PROFILE=SYSTEM&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;ssl-default-server-ciphers PROFILE=SYSTEM&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# common defaults that all the 'listen' and 'backend' sections will&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# use if not designated in their block&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;defaults&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;log global&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;mode http&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;option httplog&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;option dontlognull&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;option http-server-close&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;option forwardfor&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;option redispatch&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;retries 3&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout connect 5s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout client 300s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout server 300s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout tunnel 3600s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout http-keep-alive 1s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout http-request 60s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout queue 60s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout tarpit 120s&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;# main frontend which proxys to the backends&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;frontend main&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;bind *:80 &lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl host_n_printing hdr(host) -i fqdnofserverNPRINTING&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl host_alert hdr(host) -i fqdnofserverALERTING&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl host_sense hdr(host) -i fqdnofserverQSENSE&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;use_backend printing if host_n_printing&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;use_backend alert if host_alert&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;## routing based on websocket protocol header&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl hdr_connection_upgrade hdr(Connection) -i upgrade&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl hdr_upgrade_websocket hdr(Upgrade) -i websocket&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;use_backend sense if host_sense hdr_connection_upgrade hdr_upgrade_websocket&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# static backend for serving up images, stylesheets and such&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#backend static&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# balance roundrobin&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# server static 127.0.0.1:4331 check&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;# round robin balancing between the various backends&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;#---------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;backend sense&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;mode http&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;balance roundrobin&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stick-table type ip size 1m expire 30m&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stick match src&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stick store-request src&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;acl match_windows_form_authentication path_beg -i /internal_windows_authentication&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;http-request set-path /internal_forms_authentication if match_windows_form_authentication&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;http-request set-header X-Forwarded-Port %[dst_port]&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;http-request add-header X-Forwarded-Proto https if { ssl_fc }&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;server bi&amp;nbsp; IPofCentralNode 00.000.00.00:80 maxconn 2000 check verify none&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;server bi1 IPofFailoverNode00.000.00.00:80 maxconn 2000 check verify none&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;EM&gt;backend printing&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;balance roundrobin&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;server bi3 ipofNPRINTINGSERVER00.000.00.00:4993 check port 4993&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;backend alert&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;balance roundrobin&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;server bi4 ipofALERTINGSERVER00.000.00.00:4551 check port 4551&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jun 2022 09:02:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943222#M22463</guid>
      <dc:creator>VRaducan</dc:creator>
      <dc:date>2022-06-14T09:02:36Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Sense Behind HA proxy</title>
      <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943302#M22464</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/140785"&gt;@VRaducan&lt;/a&gt;&amp;nbsp; make sure that the timeout settings for the default Qlik Sense proxy and your reverse proxy are aligned&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Knowledge/Increase-session-timeout-in-Qlik-Sense/ta-p/1713275" target="_self"&gt;Increase-session-timeout-in-Qlik-Sense&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jun 2022 10:49:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943302#M22464</guid>
      <dc:creator>Eugene_Sleator</dc:creator>
      <dc:date>2022-06-14T10:49:57Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Sense Behind HA proxy</title>
      <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943380#M22465</link>
      <description>&lt;P&gt;Hi Eugene, thanks for the answer.&lt;/P&gt;
&lt;P&gt;Just the timeouts of the proxy?&lt;/P&gt;
&lt;P&gt;What about all these other timeouts?&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;timeout connect 5s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout client 300s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout server 300s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout tunnel 3600s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout http-keep-alive 1s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout http-request 60s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout queue 60s&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;timeout tarpit 120s&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jun 2022 12:44:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943380#M22465</guid>
      <dc:creator>VRaducan</dc:creator>
      <dc:date>2022-06-14T12:44:47Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Sense Behind HA proxy</title>
      <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943468#M22467</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/140785"&gt;@VRaducan&lt;/a&gt;&amp;nbsp; from the Qlik side of things&amp;nbsp;&lt;A href="https://community.qlik.com/t5/Knowledge/Qlik-Sense-Session-Inactivity-Timeout-and-Keep-Alive-settings/ta-p/1713825" target="_self"&gt;these&lt;/A&gt;&amp;nbsp; are the timeouts you need to consider. As for the exact&amp;nbsp; Haproxy&amp;nbsp; configuration you would need to refer to the Haproxy documentation.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jun 2022 14:37:27 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1943468#M22467</guid>
      <dc:creator>Eugene_Sleator</dc:creator>
      <dc:date>2022-06-14T14:37:27Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Sense Behind HA proxy</title>
      <link>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1944991#M22486</link>
      <description>&lt;P&gt;Hi all, Thank you Eugene, the problem was not related to the timeouts since these latter ones can be corrected after the http will do the upgrade properly.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The problem was due to the fact that the HA proxy endpoint was waiting for the qrsData call from an external Hardware Balancer, which was used to authenticate the Users and unload the ssl after the authentication, since HA proxy used mode http.&lt;/P&gt;
&lt;P&gt;So the problem was that this Hardware Network Balancer was not sending the WSS call to the HA proxy, thus truncating the connection.&lt;/P&gt;
&lt;P&gt;Once the load balancer had been configured the system was able to work correctly.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank You all for you answers.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;P.S. also for a peace of mind and after some confrontation, we decided to not use on HA proxy the sticky sesssion IP Based:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;stick-table type ip size 1m expire 30m&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stick match src&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;stick store-request src&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;these sticky session have been changed with a cookie based ones. Unfortunately it was not a configuration we were able to retrieve as for an example here on the community. Maybe We'll get that soon so anyone could at least have an idea &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Jun 2022 09:51:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Management-Governance/Qlik-Sense-Behind-HA-proxy/m-p/1944991#M22486</guid>
      <dc:creator>VRaducan</dc:creator>
      <dc:date>2022-06-17T09:51:25Z</dc:date>
    </item>
  </channel>
</rss>

