赣州建站服务,贵州做网站公司,开一家互联网公司需要多少钱,网站开发师职责一、nginx反向代理流程 反向代理#xff1a;使用代理服务器来接受internet上的连接请求#xff0c;然后将请求转发给内部网络中的上游服务器#xff0c;并将上游服务器得到的结果返回给请求连接的客户端#xff0c;代理服务器对外表现就是一个web服务器。Nginx就经常拿来做…一、nginx反向代理流程 反向代理使用代理服务器来接受internet上的连接请求然后将请求转发给内部网络中的上游服务器并将上游服务器得到的结果返回给请求连接的客户端代理服务器对外表现就是一个web服务器。Nginx就经常拿来做HTTP反向代理服务器。
Nginx具有强悍的高并发高负载能力所以一般会作为前端服务器直接向客户端提供静态文件服务。但是一些复杂、多变的业务不适合放Nginx上一般会使用Apache、Tomcat等服务器来处理。因此Nginx一般会作为静态web服务器与反向代理服务器将不适合自己处理的请求转发给上游服务器处理。
在这里插入图片描述 Nginx代理服务器处理过程
1.接受HTTP请求将用户的请求包括HTTP包体完整的接受到Nginx服务器的磁盘或者内存中。
2.向上游服务器发起连接
3.将缓存的客户端请求转发到上游服务器 Nginx的这种转发方式与Squid等代理服务器的处理方式不同Squid是一边接收客户端请求一边将请求转发到上游服务器。相比之下 Nginx延长了一个请求处理的时间并且增加了用于缓存请求内容的内存和磁盘空间。 但是Nginx有效的降低了上游服务器的负载将压力放在了Nginx服务器上。 那么Nginx的这种机制是如何降低上游服务器的负载的呢通常情况下客户端与Nginx代理服务器走公网代理服务器与上游服务器之间走内网。如果一边接受客户端请求一般将请求转发到上游服务器的话上游服务器需要长时间的保存这个连接增加上游服务器的并发压力。但是如果是接受到完整请求之后再转发给上游服务器的话内网的速度更快不需要那么长的时间保持连接可以减低上游服务器的并发压力。
二、nginx反向代理具体执行过程 以访问http://nginx.test.com为例 1、当HTTP请求交给Nginx处理时首先Nginx会取出header头中的Host 此处也就是 nginx.test.com然后将其与所有的配置文件中的每个server段中的server_name进行匹配以此决定到底有哪个server块来处理这个请求。当然有时也可能一个Host与多个server块中的server_name都匹配这时会根据匹配的优先级选择实际处理的server块
2、此时我们可以看到HTTP请求匹配到了server_name nginx.test.com;这样接下来nginx就会在当前server块中匹配到 location / 。 3、接下来继续由nginx处理可以看到 location / { proxy_pass http://hellonginx; } ; 这就是进行反向代理处理这个例子中使用的是nginx的upstream模块进行反向代理实现。 4、通过proxy_pass http://hellonginx; 中的 hellonginx 可以找到对应的upstream块然后可以根据其中的 server 127.0.0.1:8080 ;再次进行代理请求到目标服务器。