使用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

原文地址:https://www.cnblogs.com/mangoVic/p/12239044.html

时间: 2024-11-07 14:52:34

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

涨知识-VI 基于TCP/UDP的应用层协议

基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Transfer Protocol 文件传输协议) SMTP(Simple Mail Transfer Protocol 简单邮件传输协议),用来发送电子邮件 POP3(Post Office Protocol 3)邮件读取协议,协议通常被用来接受电子邮件 HTTP HTTPS 基于UDP: NFS(net

HTTP协议与HTTPS协议的区别

这节我们先简单地回顾HTTP协议和HTTPS协议 一.HTTP和HTTPS的基本概念 HTTP: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少.HTTP协议分析参见<https://www.cnblogs.com/Erma/p/10325998.html> HTTPS: 是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS

使用 Nginx 实现 301 跳转至 https 的根域名

基于 SEO 和安全性的考量,需要进行 301 跳转,以下使用 Nginx 作通用处理 实现结果 需要将以下地址都统一跳转到 https 的根域名 https://chanvinxiao.com http://chanvinxiao.com (不带 www 的 http) http://www.chanvinxiao.com (带 www 的 http) https://www.chanvinxiao.com (带 www 的 https) 301 与 302 的区别 301 是永久重定向,30

http协议与https协议的前世今生

一.Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 ,而 HTTPS 的标准端口是443 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层 HTTP 无法加密,而HTTPS 对传输的数据进行加密 HTTP无需证书,而HTTPS 需要CA机构颁发的SSL证书 二.无状态协议 无状态协议对于事务处理没有记忆能力.缺少

HTTP、HTTPS协议

1.HTTP协议HTTP是超文本传输协议,是一个基于请求与响应,无状态的应用层协议2.HTTPS协议HTTPS是超文本传输安全协议为什么HTTPS是安全的?加密是用什么实现的答:因为它在HTTP协议上建立了SSL加密层,对传输数据进行加密,HTTP先与SSL通信,SSL再与TCP通信.有了SSL就会对信息加密,身份验证以及完整性校验.SSL的功能实现是基于散列函数,对称加密和非对称加密.3.HTTP和HTTPS的区别(1)HTTP是明文传输,HTTPS是密文传输(2)HTTPS一般需要到CA申请

http协议与https的不同之处

记得之前有过一次面试时被问到:'解释一下http与https',我记得当时的回答是这是两种不同的协议,https协议相对安全,但是又被问到为什么的时候我就呵呵了,以下是我从网上找到的一些资料.. HTTPS和HTTP的概念 HTTPS(全 称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容 就需要SSL.

LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host &quot;XXX&quot; failed:[10054] Connection reset by peer [MsgId:MERR-27780]

最近做一个负载均衡项目的性能测试,使用LR录制脚本协议为https协议,回放脚本时出现报错: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection reset by peer  [MsgId:MERR-27780] 如图: Loadrunner默认发送是通过sockets(将http转换为sockets)发送的,而sockets默认SSL的版本为SSL2和SSL3.HTTPS协议录制的脚本以

HTTPS协议、TLS协议、证书认证过程解析

一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (Secure Socket Layer)安全套接字层的后续版本. TSL握手协议如下图所示 (注:图片来源于google图片) 在建立TCP连接后,开始建立TLS连接.下面抓包分析TLS握手过程,抓包图片来源于传输层安全协议抓包分析之SSL/TLS (自己没抓到这么完整的包,只能搬运过来了,摔) (1

IOS7.1以后企业应用发布强制需要HTTPS协议

一.问题背景 苹果发布IOS7.1以后,企业应用发布强制需要使用HTTPS协议.需要用https协议就需要在服务器上部署SSL证书. 二.问题描述 苹果发布IOS7.1以后,用户安装app,需要使用https协议来下载plist文件,也就是说,在安装app的第一步,下载.plist文件,就需要使用https协议.https协议如下: 用户要使用https来下载.plist文件就需要企业网站支持https协议访问.企业网站如何做到支持HTTPS协议呢?只有在网站服务器上部署SSL证书才能使网站支持