nginx代理走的是服务器的网络吗

nginx代理走的是服务器的网络吗,第1张

不是,Nginx代理只是在客户端和服务器间提供了一个中间件,它不会消耗服务器的网络带宽。当一个请求发生时,客户端会发起一个请求到Nginx服务器,Nginx服务器会将请求转发到真正的服务器上,服务器响应请求后,Nginx服务器将响应返回给客户端。Nginx代理服务器可以提高网络服务的性能,它可以减少网络请求的数量,缓存网页内容,压缩传输数据,负载均衡和其他功能,但是它不会消耗网络带宽资源。

什么是跨域?

跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址, b页面为域名地址,所进行的访问行动都是跨域

浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源

同ip(或domain),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写 本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略

现代浏览器在安全性和可用性之间选择了一个平衡点。 在遵循同源策略的基础上,选择性地为同源策略“开放了后门”。例如img script style等标签,都允许垮域引用资源,然而, 你也只能是引用这些资源而已,并不能读取这些资源的内容

同源策略限制以下几种行为:

1Cookie、LocalStorage 和 IndexDB 无法读取

2DOM 和 Js对象无法获得

3AJAX 请求不能发送

>(10W 用户) ----- TCP 长连接 ----- Nginx/HAproxy/LVS(软件负载) ------ TCP 长连接 ----- (实际业务,多台业务服务器)
客户端 TCP 10W 长连接到 Nginx/HAproxy 这一步,没有问题。

软件负载到实际业务这里,由于负载均衡(nginx) 是采用转发的方式进行处理的,本地会创建连接,当转发超出 65535 时,(nginx)就不能建立长连接了。

Linux 系统调优参数基本已经设置过了,应该不是这里的问题。

请问要进行哪些配置?

65535 那是 ipv4 协议本身的限制,问题是,nginx 到实际业务之间为什么要长连接?
处理过 50 万长连接的业务: nginx --> 实际业务服务器

在 nginx 这里采用多个内网 IP,这些 IP 使用 proxy_bind 来指定。

参考  >

nginx安装手册

LVS,Nginx和HAProxy负载均衡对比

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

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

IPv6地址在方括号中指定:

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

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

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

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

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

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

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

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

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

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

启动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 模型的位置不同,负载均衡可以大概分为以下几类:

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

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

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

在计算机中,客户端A与服务端B进行同行,中间加入中介C进行数据传递,则形成了代理。来个浅显易懂的比喻,三年级二班小明和小花谈恋爱,由于小明和小花座位离的太远,这时候需要小王在中间传递纸条,在这个爱情故事中小王在中间充当了代理作用。

正向代理中,客户端通过代理服务器从服务端收发数据,即为正向代理。
举个栗子:有一个局域网,但是只有主机局域访问外部网络的权限,现在所有的机器都需要访问外部网络,通过将主机设置为代理服务器,让所有的机器通过主机可以访问外部网络,即称为正向代理。
反向代理中,代理服务器替服务端收发数据,所有的请求与相应都经过反向代理,可以用来实现数据缓存,负载均衡等。
举个栗子: 张三开了一个保险公司(服务端),一开始公司业务小,一个人接电话就够了,后来随着公司扩张,每天无数电话打进来,张三招了一个客服李四(代理),张三把和客户对接的事情都交给了李四,形成了反向代理。

配置项很多,挑几个几个常用的配置依次介绍:location、proxy_set_header、rewrite、proxy_pass

当然还有”!“、”^“匹配,用的比较少,这里不做说明

这里还有很多数据,不一一说明

包含3个参数:

用法示例:

301重定向表示永久性重定向,对于SEO相较302来说比较友好,这里不做过多说明。

nginx doc
nginx rewrite 配置

反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理有以下优点:
1、可以起到保护网站安全的作用,因为任何来自Internet的请求都必须先经过代理服务器。
2、通过缓存静态资源,加速Web请求。
3、实现负载均衡。顺便说下,目前市面上,主流的负载均衡方案,硬件设备有F5,软件方案有四层负载均衡的LVS,七层负载均衡的Nginx、Haproxy等。


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

原文地址: http://outofmemory.cn/zz/12801932.html

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

发表评论

登录后才能评论

评论列表(0条)

保存