Nginx用处

  • 反向代理:代理服务器代替真是服务器接收Internet请求,并将请求转发给【内部网络上的】真实服务器;真实服务器得到的结果再通过代理服务器返回给客户端,此时就表现为一个代理服务器,用户是不知道到底哪个真实服务器在此处理的
server {
     listen 80;
     server_name loclhost ;
     client_max_body_size 1024M ;
     #允许客户端请求的最大单文件字节数
     location / {
     # 对 "/" 启用反向代理
     proxy_pass http://localhost:8080 ;
     proxy_set_header Host $host:$server_port ;
     }
    } # 当我们访问localhost的时候,就相当于访问localhost:8080
  • 负载均衡:当有两台或以上的服务器时,根据规则随机的将请求分发到指定服务器进行处理,一般需要配置反向代理,通过反向代理跳转到负载均衡,Nginx自带3种负载均衡策略

    • RR(默认):按时间逐一分配到不同后端服务器
    upstream test { # 核心代码
         server localhost: 8080 ;
         server localhost: 8081 ;
        } # Nginx会自动判断服务器状态,如果不能访问就不会跳转到此服务器,避免服务器挂了的影响
    
    • 权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

      server localhost: 8080 weight=9 ;
      server localhost: 8081 weight=9 ;
      } # 10次一般只会有1次会访问到8081,而有9次会访问到8080```
      
      
    • ip_hash:当需要一个客户只访问一个服务器,如登陆的时候根据session来保存信息(iphash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题)

      ip_hash ;
      server localhost: 8080 ;
      server localhost: 8081 ;
     }
    
    • fair:按后端服务器的响应时间来分配请求

    • url_hash:按访问的hash结果来分配请求,使每个url定向到同一个后端服务器(在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法)

       hash $request_uri ;
       hash_method crc32 ;
       server localhost: 8080 ;
       server localhost: 8081 ;
      } 
      
  • HTTP服务器(动静分离)

    nginx本身是静态资源服务器,当只有静态资源的时候,可以使用Nginx做服务器,

    • 静态

    • 动静分离:根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作

      image
  • 正向代理:客户端知道要访问哪台服务器,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;通过代理服务器(屏蔽了真实客户端信息)做中转

    server {
     resolver_timeout 5s ;
     listen 81 ;
     access_log e:\wwwroot\proxy.access.log;
     error_log e:\wwwroot\proxy.error.log;
    
     location / {
     proxy_pass http://$host$request_uri ;
     }
    }
    
  • 正反向代理结合:正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器

你可能感兴趣的:(Nginx用处)