当前位置 主页 > 服务器问题 > nginx问题汇总 >

    Nginx代理服务的详细配置说明

    栏目:nginx问题汇总 时间:2019-11-04 13:24

      Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
      Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
      Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
      1、我们在http模块中有下面的配置,当代理遇到状态码为404时,我们把404页面导向百度。
      error_page 404 ;#百度错误页
      然而这个配置,细心的朋友可以发现他并没有起作用。
      如果我们想让他起作用,我们必须配合着下面的配置一起使用
      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服务器,如果这里的响应连接时间过长,就会导致客户端的页面一直在等待响应,对用户来说体验就打打折扣,这里我们怎么避免这样的情况发生呢。这里我配张图来说明下问题。

      之前说nginx有哪些中负载均衡算法。这一结我就给如果操作配置的给大家做详细说明下。
      首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置负载均衡的算法。这里的被代理服务器地址有2中写法。
      复制代码
      upstream mysvr {
      server 192.168.10.121:3333;
      server 192.168.10.122:3333;
      }
      server {
      ....
      location  ~*^.+$ {
      proxy_pass  http://mysvr;#请求转向mysvr 定义的服务器列表
      }
      复制代码
      复制代码
      upstream mysvr {
      server  http://192.168.10.121:3333;
      server  http://192.168.10.122:3333;
      }
      server {
      ....
      location  ~*^.+$ {
      proxy_pass  mysvr;#请求转向mysvr 定义的服务器列表
      }