Nginx的常用功能:(1)HTTP反向代理。作为Web服务器做常用的功能之一,Nginx做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采用不同的转发策略。Nginx可以对返回页做错误页跳转,异常判断等。(2)负载均衡。Nginx提供的负载均衡策略有两种,内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略就天马行空。Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
Nginx配置文件:
(1)全局块:配置影响Nginx的全局指令。一般有运行Nginx服务器的用户组,Nginx进程pid存放路径,日志文件存放路径,配置文件引入,允许生成的worker process数等。
(2)event块:配置影响Nginx服务器或与用户的网络连接。每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时连接多个网络连接,开启多个网络连接序列化等。
(3)http块:可以嵌套多个server,配置代理、缓存、日志定义等绝大多数功能和第三方模块功能的配置。如文件引入、mime-type定义、日志自定义、是否使用sendfile传输文件、连接超时时间、但连接请求数等。
(4)server块:配置虚拟主机的相关参数,一个http中可以有多个server。
(5)location块:配置请求的路由,以及各种页面的处理情况
Nginx代理服务配置说明:
(1)设置404页面导向配置
error_page 404 https://www.runnob.com; #错误页
proxy_intercept_errors on; #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。
(2)如果我们的代理方式只允许接受get与post中的一种
proxy_method get; #支持客户端的请求方法。post/get;
(3)支持的http协议版本
proxy_http_version 1.0 ; #Nginx服务器提供代理服务的http协议版本1.0,1.1,默认设置为1.0版本
(4)如果你的nginx服务器给2台web服务器做代理,负载均衡算法采用轮询,那么当你的一台机器web程序iis关闭,也就是说web不能访问,那么nginx服务器分发请求还是会给这台不能访问的web服务器,如果这里的响应连接时间过长,就会导致客户端的页面一直在等待响应,对用户来说体验就打打折扣,这里我们怎么避免这样的情况发生呢?如果负载均衡中其中web2发生这样的情况,nginx首先会去web1请求,但是nginx在配置不当的情况下会继续分发请求道web2,然后等待web2响应,直到我们的响应时间超时,才会把请求重新分发给web1,这里的响应时间如果过长,用户等待的时间就会越长。下面的配置是解决方案之一。
proxy_connect_timeout 1; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒。
proxy_read_timeout 1; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
proxy_send_timeout 1; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
proxy_ignore_client_abort on; #客户端断网时,nginx服务器是否终断对被代理服务器的请求。默认为off。
(5