使用nginx轻松配置tcp正向代理服务器 (nginx设置tcp正向代理服务器)

Nginx是一款开源的高性能HTTP和反向代理服务器,它的广泛应用导致了nginx生态系统的繁荣,它也拥有一系列强大的功能,如负载均衡、TCP代理等。在本文中,我们将介绍如何。

什么是TCP代理?

TCP代理(Transport Control Protocol代理)是一种网络应用程序,用于将数据从一个TCP/IP地址和端口传输到另一个TCP/IP地址和端口。TCP代理通过修改目的IP地址和端口将客户端发送的请求转发到服务器。因此,TCP代理用于连接客户端和服务器,并将数据从客户端传输到服务器,从服务器传输到客户端。

TCP代理类型

TCP代理可以分为三种类型:正向代理、反向代理和透明代理。

正向代理是代理在目标服务器之前的代理服务器,客户端通过代理服务器访问目标服务器。例如,您可以使用正向代理来访问在公司网络之外的网站。

反向代理是位于目标服务器后面的代理服务器,客户端通过反向代理访问目标服务器。例如,您可以使用反向代理来提供高可用性和负载平衡。

透明代理是完全透明的代理,不需要任何特殊设置。它改变了客户端和服务器之间的连接,这是使用代理的客户端和服务器不知道的。

本文将重点介绍TCP正向代理服务器如何使用nginx配置。

Nginx TCP正向代理

Nginx可以轻松配置TCP正向代理服务器。以下是如何使用nginx作为TCP正向代理服务器的步骤:

步骤1. 安装Nginx

如果您没有安装Nginx,请从官方网站下载最新版本。

步骤2. 创建TCP代理服务器配置

要创建TCP代理服务器配置,请我们需要在nginx.conf文件中添加以下内容:

stream {

server {

listen 8010;

proxy_pass backend:80;

}

}

该配置将在端口8010上启动TCP代理服务器,并将客户端请求转发到主机“backend”的80端口。

步骤3. 重新启动Nginx

在修改了nginx.conf文件之后,需要重新启动Nginx服务器才能让配置生效:

sudo systemctl restart nginx

现在,您已经成功地使用nginx配置了TCP正向代理服务器。

结论

TCP代理服务器是网络应用程序的一个重要部分,可以提高连接速度,保护隐私和安全。Nginx是一款强大的HTTP和反向代理服务器,还支持TCP正向代理。在本文中,我们介绍了如何使用nginx轻松配置TCP正向代理服务器。我们希望这篇文章可以帮助您理解如何使用nginx配置TCP正向代理服务器,并在您的下一个项目中使用。

相关问题拓展阅读:

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

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已经开始监听2023端口了

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

在realserver上查看网络连接:

可以正常连接

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

在nginx机器上查看网络连接

在realserver上查看网络连接

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

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

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

负载均衡根据所采用的设备对象(

软/硬件负载均衡

),应用的OSI网络层次(斗袜

网络层次上的负载均衡

),及应用的地理结构(

本地/全局负载均衡

)等来分类。根据应用的 OSI 网络层次来分类的两个负载均衡类型。

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

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

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

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

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

nginx基本配置(参考)

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、TP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的更大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

6、缓存控制字段cache-control的配置说明 (

)

HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。

请求时的缓存指令包括: no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。

响应消息中的指令包括: public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。

no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器.

no-store: 不仅不能缓存, 连暂存也不可以模仿悄(即: 临时文件夹中不能暂存该资源).

private(默认): 只能在浏览器中缓存, 只有在之一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.

public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等.

max-age: 相对过期时间, 即以秒为单位的缓存时间.

no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器.

设置以分钟为单位的绝对过期时间, 优先级比Cache-Control低, 同时设置Expires和Cache-Control则后者生效. 也就是说要注意一点: Cache-Control的优先级高于Expires

expires起到控制页面缓存的作用,合理配置expires可以减少很多服务器的请求, expires的配置可以在http段中或者server段中或者location段中. 比如控制图片等过期时间为30天

客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

“它代理的是客户端,代客户端发出请求”,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一旦渣个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必大孙须要进行一些特别的设置才能使用正向代理。

正向代理的用途:

(1)访问原来无法访问的资源,如Google

(2) 可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,”它代理的是服务端,代服务端接收请求”,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:

(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

(2)负载均衡,通过反向代理服务器来优化网站的负载

关于nginx设置tcp正向代理服务器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 使用nginx轻松配置tcp正向代理服务器 (nginx设置tcp正向代理服务器)