nginx TLS分流

需求:

nginx根据SNI进行分流(仅作转发,无需在nginx上部署证书)

nginx部分:nginx需要包含stream模块(现在较新的系统发行版的包管理器上的nginx一般都自带),若是编译方法安装,需要加入--with-stream编译选项(可能需要--with-stream_ssl_module选项)

配置:

# stream模块设置
stream {
    resolver 127.0.0.1 valid=60s;
    # SNI识别,将域名映射成配置名
    map $ssl_preread_server_name $stream_map {
        example1.com    backend1;
        example2.com    backend2;
        # 不在上述SNI时默认配置
        default         default_backend;
    }

    # upstream配置
    upstream backend1 {
        server 10.0.0.1:443;
    }
    upstream backend2 {
        server 10.0.0.2:443;
    }
    upstream default_backend {
        server 10.0.0.99:443;
    }

    # stream模块监听服务器公网443端口
    server {
        listen 443 reuseport;
        listen [::]:443 reuseport;
        # resolver 127.0.0.1 valid=60s;
        # 开启ssl预读
        ssl_preread on;
        # proxy_buffer_size 128k;
        proxy_pass $stream_map;
    }
}

Views: 44

发布者:Tabing010102

???

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据