nginx配置tcp固定返回

nginx配置tcp固定返回,第1张

Nginx通常用作一个HTTP服务器,但它也可以用来代理TCP和UDP流量。当配置TCP代理时,可以使用Nginx的tcp模块来指定TCP固定返回。这个功能用于在需要时立即关闭连接,而不是等待客户端发送数据。

TCP固定返回的一个常见用例是在安全测试期间模拟攻击。攻击者通常会尝试与目标主机建立TCP连接,如果连接成功,他们将尝试发送恶意数据包。通过使用TCP固定返回,可以立即关闭这些连接,从而防止攻击者继续发送恶意数据包。

配置TCP固定返回非常简单。您只需要在Nginx配置文件中使用以下语法:

```

server {

listen <port>

server_name <server_name>

# TCP固定返回

return 444

}

```

在这个例子中,Nginx将监听指定的端口,并通过使用“return 444”指令立即关闭连接,不返回任何响应。

需要在服务器上实现个TCP服务器, 由于已安装了nginx, 所以在nginx中给TCP开个口子。

网上文章的说法都是, 1.9.0版之后nginx开始具有TCP/UDP的代理转发功能, 但需要手动安装stream模块.

我用 nginx -V 命令(注意V是大写, 可查询nginx已安装模块)查了一下, 我的nginx是1.16.0版本, 并且已经安装了stream模块(命令输出包含 --with-stream ), 所以我就不用手动安装了.

首先要明确的一点, 关于TCP转发的配置, 是TCP层面的, 它和HTTP是同一层级, 并不是HTTP的下层.

所以其配置项目要放在nginx的顶级配置文件( /etc/nginx/nginx.conf )的顶级块里面, 和顶级配置文件中的http块同属一个层级. 注意不能放在 conf.d 文件夹下, 这个文件夹下的配置文件都在http块级以下.

在顶级配置文件( /etc/nginx/nginx.conf )中添加如下配置块:

实现, 监听8998端口, 转发8999端口(服务器上的程序实现TCP server在8999端口).

nginx -t 检查一下配置文件,

nginx -s reload 重新加载配置, 即可!

UDP的转发类似, 我这次的应用不需要, 也就没有测试试验, 不过先记录在此.

配置块如下:

nginx安装手册

LVS,Nginx和HAProxy负载均衡对比

Nginx支持TCP代理和负载均衡-stream模块

该 ngx_stream_core_module 模块自1.9.0版开始提供。默认情况下不构建此模块,应使用 --with-stream 配置参数启用它。

IPv6地址在方括号中指定:

UNIX域套接字使用“ unix: ”前缀指定:

该 ssl 参数允许指定此端口上接受的所有连接都应在SSL模式下工作。

该 udp 参数配置一个侦听套接字以处理数据报(1.9.13)。

的 proxy_protocol 参数(1.11.4)允许指定这个端口上接受的所有连接应使用 代理服务器协议 。

该 listen 指令可以有几个特定于与套接字相关的系统调用的附加参数。

不同的服务器必须监听不同的 address : port 对。

可以将地址指定为域名或IP地址,以及可选端口。如果未指定端口,则使用端口53。以循环方式查询名称服务器。

默认情况下,nginx将在解析时查找IPv4和IPv6地址。如果不需要查找IPv6地址,则 ipv6=off 可以指定参数。

默认情况下,nginx使用响应的TTL值缓存答案。可选 valid 参数允许覆盖它:

该 ngx_stream_core_module 模块支持自1.11.2以来的变量。

启动nginx,发现nginx已经开始监听2018端口了

在客户端通过telnet连接realserver的2018端口:

在realserver上查看网络连接:

可以正常连接

在客户端通过telnet连接nginx所在服务器的2018端口

在nginx机器上查看网络连接

在realserver上查看网络连接

nginx是给做了一个TCP连接的中转。

client和nginx有一个tcp长连接,nginx和realserver有一个tcp长连接,但是client和realserver之间并没有tcp长连接,仅由nginx服务器负责数据中转。

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡根据所采用的设备对象( 软/硬件负载均衡 ),应用的OSI网络层次( 网络层次上的负载均衡 ),及应用的地理结构( 本地/全局负载均衡 )等来分类。根据应用的 OSI 网络层次来分类的两个负载均衡类型。

网络模型图,包含了 OSI 模型及 TCP/IP 模型,两个模型虽然有一点点区别,但主要的目的是一样的,模型图描述了通信是怎么进行的。它解决了实现有效通信所需要的所有过程,并将这些过程划分为逻辑上的层。层可以简单地理解成数据通信需要的步骤。

根据负载均衡所作用在 OSI 模型的位置不同,负载均衡可以大概分为以下几类:

在实际应用中,比较常见的就是四层负载及七层负载。这里也重点说下这两种负载。

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7959546.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存