Haproxy

From Hurlster Wiki
Jump to navigation Jump to search
  • cat haproxy.cfg
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
        tune.ssl.default-dh-param 2048
        nbproc 4
        stats bind-process 4
        user haproxy
        group haproxy
        daemon

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

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        # An alternative list with additional directives can be obtained from
        #  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  dontlognull
        option  http-keep-alive
        stats   enable
        stats   auth    username:password
        stats   uri     /haproxyStats
        timeout connect 50000
        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

## HTTP
frontend http-in
        mode http
        bind x.x.x.x:80
        bind x.x.x.x:443 ssl crt /etc/ssl/domain.com.pem

        # Define domain based forward
        acl host_sub1 hdr(host) -i sub1.domain.com
        acl host_sub2 hdr(host) -i sub2.domain.com

        # Redirect domain based forwards
        use_backend sub1_http if host_sub1
        use_backend sub2_http if host_sub2

        # Fallthrough
        default_backend sub1_http

backend sub1_http   
        server node1 127.0.0.1:80 check

backend sub2_http   
        server node1 192.168.0.65:80 check