相信各位OpenSSL库已经不陌生了,目前笔者使用这个库实现了RSA、AES加解密和tcp的双向认证功能,下面来看tcp的双向认证。1、什么是双向认证简单说双向认证就是:客户端认证服务端是否合法,服务端认证客户端是否合法。 可以借助于HTTPS来说明,http网络传输协议是超文本的明文协议,也就是说经过网卡传输的字节序列都是明文,那么HTTPS上的s就是双向认证的操作(ssl),实际上就是在ht
转载 2024-09-05 05:50:13
41阅读
openresty出现socket read/write busy的原因及解决方法基本概念cosocketcosocket即openresty将其协程(coroutine)与网络套接字结合在一起实现的非阻塞网络I/O其中tcp相关api为:创建对象:ngx.socket.tcp设置超时:tcpsock:settimeout 和 tcpsock:settimeouts建立连接:tcpsock:con
转载 2024-03-26 09:42:28
68阅读
传输控制协议(Transmission Control Protocol, TCPTCP协议主为了在主机间实现高可靠性的包交换传输协议。本文将描述协议标准和实现的一些方法。因为计算机网络在现代社会中已经是不可缺少的了,TCP协议主要在网络不可靠的时候完成通信,军方可能特别有用,但是对于政府和商用部门也适用。TCP是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP下层服务没有多少要求
引言  OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。物流网关就是基于OpenResty构建的,今天就跟大家聊聊 OpenResty 在物流网关的故事。 为什么选择OpenResty
转载 2024-04-01 10:59:22
91阅读
send()/write() 成功返回只意味着内核接收了数据,并准备在某些时候发送它们。内核接收数据后,还要把数据包发送到网卡,并在网络中各个网卡遍历,最终到达远程主机。远程主机的内核确认到数据,拥有该 socket 的进程从中读取数据,此时数据才真正到达应用程序。也就是说,当最后一次 send 函数执行完之后,并不意味着对方已经接收到完整的数据了,如果此时我们需要关闭连接,应再确认一下对方是否已
OpenResty概念讲解OpenResty介绍OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将
转载 2024-02-20 20:51:33
377阅读
cosocket 是各种 lua-resty-* 非阻塞库的基础,没 有 cosocket,开发者就无法用 Lua 来快速连接各种外部的网络服务。在早期的 OpenResty 版本中,如果想要去与 Redis、memcached 这些服务交互的话,需要使用 redis2-nginx-module、redis-nginx-module 和 memc-nginx-module这些 C 模块.这些模块至
转载 2024-04-09 15:03:44
142阅读
作为一名开发者,往往需要编写程序的 API 文档,尤其是 Web 后端开发者,在跟前端对接 HTTP 接口的时候,一个好的 API 文档能够大大提高协作效率,降低沟通成本,本文就来聊聊如何使用 OpenAPI 构建 HTTP 接口文档。OpenAPI什么是OpenAPIOpenAPI 是规范化描述 API 领域应用最广泛的行业标准,由 OpenAPI Initiative 组织定义并维护,同时也是
转载 8月前
95阅读
前面文章介绍了如何使用子请求的方式让nginx帮我们做zip压缩,见:https://blog.csdn.net/liuxia
原创 2022-06-16 06:50:43
185阅读
1 概述记录一个openresty端口多路复用项目。支持http,ssh,dns,tls,xmpp协议项目地址:https://github.com/fffonion/lua-resty-multiplexer2 安装操作2.1 下载项目https://github.com/fffonion/lua-resty-multiplexer2.2 openresty打补丁OpenResty 1.15.8
原创 6月前
175阅读
sse (server send events) 是一个单向的服务器消息推送方案,比较适合的业务场景是实时数据显示(而且sse 可以很好的支持数据的多播) 参考图 集成说明 对于业务请求我们基于openresty 灵活的扩展能力,对于需要sse 服务的,我们可以按照租户或者业务系统或者单一订阅id进
原创 2022-06-05 22:34:14
529阅读
各位看官大家好,在上一篇文章中,我们详细讲解了select函数,也在文末上传了实现代码。今天我们来了解一下poll函数,他和select又有哪些不同,哪些相似。 很尴尬我找不到合适的配图 Poll函数详解在上一篇文章中我们提到select有如下几个缺点:select函数能打开的文件描述符(fd)有限;select采用轮询的遍历方式,导致效率较低;由于执行此函数需要一个非常大的struct
1 “' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.”。异常 1.1 通过跨域策略解决1.1.1 在appsettings.json文件中定义跨域策略配置// 跨域(Co
背景分析有时在组网中,多台主机本身处于同一物理网络,也在同一局域网下,想访问一个wg网上peer的服务。如果将每台主机视为一个peer,都分别分配一个key加入wg网,则稍显繁琐。因此,考虑是否可以将局域网网关作为一个peer,转发其他局域网主机的连接请求。最终效果配置完成后,整体像位于同一个子网内,但实际上局域网到wg peer的通信无形之中加了一层“防火墙”,局域网主机可以用自己的IP直接与虚
通过Rewrite规则可以实现规范的URL、根据变量来做URL转向及选择配置,用好Rewrite有时起到事半功倍的效果。语法Nginx的Rewrite相比Apache的要好理解很多,主要使用指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。rewrite 语法: rewrite regex replacement [flag]; 默认值:
转载 2024-04-24 12:49:55
50阅读
本文讲述基于 OpenResty 的接口网关设计,主要谈及接口网关的请求路由与安全认证(IP 与 URI 白名单、加解密与验签名流程等)这两部分内容,其中涉及到的 Nginx、OpenResty温馨提示:文章图片中的文字较小,为了更好的阅读体验,建议 PC 端阅读。谈谈基于 OpenResty 的接口网关设计〇、前言一、什么是接口网关1.1 定位1.2 功能二、为什么
转载 3月前
420阅读
1.区别         tcp协议是对应于传输层,http协议是对应于应用层,从本质上来说,二者是没有可比性的。http协议是建立在tcp协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发送一次http请求。http会通过tcp建立起一个到服务器的连接通道,当本次请求需要的数据完毕之后,http会立即将tcp连接断开,这个过程是很短的。
转载 1月前
362阅读
1. 安装方式 wget https://luarocks.github.io/luarocks/releases/luarocks-2.4.3.tar.gz tar -xzvf luarocks-2.4.3.tar.gz cd luarocks-2.4.3 ./configure --prefix
原创 2021-07-18 11:43:40
1392阅读
  TCP限流是因为让接收方充分接受完消息,保证数据安全,不会丢失一、窗口机制介绍发送端和接收端都拥有一个窗口,当发送端发送数据时,落进窗口的数据被发送,当接受端接受数据时,落进接收端窗口的数据将会被接受。由此可见可以通过窗口大小限制流量二、滑动窗口技术(限流使用到的技术)1 TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间的数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个
转载 2023-07-25 10:34:45
256阅读
TCP/IP怎么就这么多队列啊?今天我们就来细看一下TCP/IP的几个队列,包括建立连接时的半连接队列(sync),全连接队列(accept)和接收报文时的receive、outoforder、prequeue以及backlog队列。建立连接时的队列  如上图所示,这里有两个队列:syns queue(半连接队列)和accept queue(全连接队列)。三次握手中,服务端接收
转载 2024-03-22 21:37:26
91阅读
  • 1
  • 2
  • 3
  • 4
  • 5