- 反向代理:代理服务器代替真是服务器接收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 ; } }
正反向代理结合:正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器