使用nginx实现基于tcp协议的https协议多域名指向的分别转发功能

Posted 芒果-Vic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用nginx实现基于tcp协议的https协议多域名指向的分别转发功能相关的知识,希望对你有一定的参考价值。

零、环境

os:centos8 阿里云

kernel:Linux ${hostname} 4.18.0-80.11.2.el8_0.x86_64 #1 SMP ${time} x86_64 x86_64 x86_64 GNU/Linux

nginx:nginx-1.17.5

一、编译安装nginx

由于nginx插件参数众多,建议编译安装

安装过程见https://www.cnblogs.com/mangoVic/p/8359864.html

注意须装插件--with-stream 和 --with-stream_ssl_preread_module


二、配置

现有两个不同目的地的https协议的域名,使用一个nginx进行转发,一个域名是xxxxxx.com,另一个是yyyyyy.com

 

map $ssl_preread_server_name $backend_pool {
    xxxxxx.com    xxx;
    yyyyyy.com    yyy;
}
upstream xxx{
    server xxxxxx.com:443;
}
upstream yyy{
    server yyyyyy.com:443;
}
server {
    listen 443;
    ssl_preread on;
    resolver 8.8.8.8;
    proxy_pass $backend_pool;
    proxy_connect_timeout 15s;
    proxy_timeout 15s;
    proxy_next_upstream_timeout 15s;
    error_log /var/log/nginx/error-tcp_xxxxxx-yyyyyy.com.log info;
    access_log /var/log/nginx/access-tcp_xxxxxx-yyyyyy.com.log proxy;
}

三、格式测试

nginx -t
nginx

四、配置host

客户端需要将域名指向到转发机

#vi /etc/hosts
111.111.111.111 xxxxxx.com
111.111.111.111 yyyyyy.com

 

五、连通性测试

telnet proxy 443

六、客户端直接访问域名

curl https://xxxxxx.com

 

以上是关于使用nginx实现基于tcp协议的https协议多域名指向的分别转发功能的主要内容,如果未能解决你的问题,请参考以下文章

nginx--基于openssl生成自颁发证书实现HTTPS协议访问

一个基于TCP协议的Socket通信实例

基于TCP和HTTP协议的RPC简单实现

网络协议分析课程设计:基于TCP协议网上聊天程序

通过Nginx TCP反向代理实现Apache Doris负载均衡

[转帖]Nginx 的 TCP 负载均衡介绍