zoukankan      html  css  js  c++  java
  • Haproxy配置

    SSL介绍

    公钥私钥就好比箱子和钥匙,通信双方没人都有一个箱子和一把钥匙,自己的箱子只有自己的钥匙才能打开,而且箱子不能暴力拆开(公钥加密的内容不能暴力破解)

    SSL通信简单介绍

    角色:

    • 浏览器:浏览器公钥(箱子A) 浏览器私钥(钥匙A)
    • 服务器:服务器公钥(箱子B) 服务器私钥(钥匙B)

    场景:

    1. 浏览器:发送Hello消息
    2. 服务器:返回服务器公钥(箱子B)
    3. 浏览器:服务器公钥如果是根证书认证的说明就是安全的(箱子B的标识是大家公认的无法仿造),然后浏览器使用服务器公钥加密自己的浏览器公钥后发送给服务器(用箱子B套住箱子A然后锁上送回去)
    4. 服务器:服务器私钥解码数据得到浏览器公钥(用钥匙B打开箱子B获取到箱子A)
    5. 后面服务器只要把要发送的数据使用浏览器公钥加密(把东西放入箱子A锁上发送),浏览器只要把要发送的数据使用服务器公钥加密(把东西放入箱子B锁上发送),那么发送的数据就只能被双方解密(只有浏览器有箱子A的钥匙,并且只有服务器有箱子B的钥匙),就算加密消息被截获也不会泄密(别人没有钥匙,没法暴力打开箱子)

    Haproxy

    环境搭建

    ### 宿主机:64位 Ubuntu 16.04 TLS
    # apt install lxc
    # lxc-create -n web -t download -- -d ubuntu -r xenial -a amd64
    # apt install haproxy
    

    在容器部署apache2服务

    # lxc-attach -n web
    # apt install apache2
    # mkdir -p /var/www/html
    # chown -R www-data:www-data /var/www/
    # a2enmod ssl
    # vim /etc/apache2/sites-enabled/50-web.conf
    
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
            documentRoot  /var/www/html
            ServerName apache
            SSLEngine on
            SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    </VirtualHost>
    </IfModule>
    
    # systemctl restart apache2
    # halt
    ### 克隆容器
    # lxc-copy -B aufs -s -n web -N apache
    

    Haproxy透传配置

    # lxc-ls -f
    NAME   STATE   AUTOSTART GROUPS IPV4       IPV6
    apache RUNNING 0         -      10.0.3.197 -
    web    STOPPED 0         -      -          -
    # vim /etc/haproxy/haproxy.cfg
    ################## 配置文件说明如下 ##################
    
    global
            log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出
            log 127.0.0.1 local1 notice
            chroot /var/lib/haproxy
            maxconn 4096
            tune.bufsize 384000
            stats socket /var/run/haproxy.stat level admin mode 600
            user haproxy #所属用户
            group haproxy #所属用户组
            daemon #以后台形式运行haproxy
    
    defaults
            log global
            option dontlognull
            option redispatch
            retries 3
            timeout client 50s
            timeout connect 10s
            timeout server 50s
            maxconn 4096
    
    frontend https-front
        bind *:443
        option tcplog
        mode tcp # 透传
        default_backend web-back
    
    
    backend web-back
        mode tcp
        balance roundrobin
        stick-table type ip size 200k expire 30m
        stick on src
    
        server apache 10.0.3.197:443
    
    frontend http-front
        bind *:80
        option httplog
        mode http
        default_backend http-back
    
    
    backend http-back
        mode http
        balance roundrobin
        stick-table type ip size 200k expire 30m
        stick on src
    
        server apache 10.0.3.197:80
    
    ######################################################
    
  • 相关阅读:
    联想yoga table2 1371f 进入bios 的巧妙方法
    vs开发nodejs api文档生成神器-apidoc
    Android中文乱码彻底解决
    android图片处理方法(不断收集中)
    【Android开发】完美解决Android完全退出程序
    android自动打包方法(ant+proguard+签名)
    Android 访问权限设置记录-存档留着有用!
    [安卓开发]App Widget开发入门指导
    Android蓝牙操作笔记
    android 基于百度地图api开发定位以及获取详细地址
  • 原文地址:https://www.cnblogs.com/silvermagic/p/7665829.html
Copyright © 2011-2022 走看看