1 反向代理介绍
https://www.cnblogs.com/jthr/p/16827214.html
2 负载均衡介绍
https://www.cnblogs.com/jthr/p/16827328.html
3 Nginx的反向代理配置
3.1 配置server
把location下面的root和index配置注释掉,添加proxy_pass配置,值就是代理的地址。
注意,这里proxy_pass的地址要支持https的话还其它需要额外的配置。
server { listen 80; server_name nginx1.com; location / { proxy_pass http://www.atguigu.com; #root /usr/local/mynginx/nginx1; #index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
3.2 访问nginx1.com
执行命令:systemctl reload nginx重新加载nginx
浏览器的地址栏还是nginx1.com,代理成功
4 Nginx的负载均衡配置
4.1 启动两个服务
先在计算机上启动两个服务
192.168.28.1:8081
192.168.28.1:8082
它们分别提供一个接口
@RestController @RequestMapping("/api") public class NginxController1 { @GetMapping public String test1(){ return "success test1 8081"; } }
@RestController @RequestMapping("/api") public class NginxController1 { @GetMapping public String test1(){ return "success test1 8082"; } }
4.2 配置nginx
1)配置serer
修改proxy_pass的值:http://httpadr; 其中httpadr是一个别名,随便取名字
server { listen 80; server_name nginx1.com; location / { proxy_pass http://httpadr/api; #root /usr/local/mynginx/nginx1; #index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
2)配置upstream
upstream适合server同级别的
注意:upstream 后面接的httpadr要和上面的别名对应上(http://httpadr/api;),这样组合就形成完整的路径http://192.168.28.1:8081/api,http://192.168.28.1:8082/api
upstream httpadr{ server 192.168.28.1:8081; server 192.168.28.1:8082; }
4.3 访问nginx1.com
执行命令:systemctl reload nginx重新加载nginx
4.4 负载均衡策略
默认情况下,nginx采用的是轮询策略,nginx还提供了其他几种常用的负载均衡配置
4.4.1 ip_hash
每个请求按访问IP的hash结果进行分配,这样每个访客就可以固定访问一个后端服务,一定程度上可以解决session问题
upstream webservers {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E--> ip_hash; server 192.168.9.134:8081; server 192.168.9.134:8082;}
4.4.2 weight
weight代表权重,默认为1,权重越高,被分配的客户端请求就会越多
upstream webservers{ server 192.168.9.134:8081 weight=8; server 192.168.9.134:8082 weight=2; }
4.4.3 fair(需要第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的将会被优先分配
upstream webservers{ server 192.168.9.134:8081; server 192.168.9.134:8082; fair; }
4.4.4 url_hash(需要第三方插件)
按访问URL的hash结果分配。这样相同的url会被分配到同一个节点,主要为了提高缓存命中率。比如,为了提高访问性能,服务端有大量数据或者资源文件需要被缓存。使用这种策略,可以节省缓存空间,提高缓存命中率
upstream webservers{ hash &request_uri; server 192.168.9.134:8081; server 192.168.9.134:8082; }
4.4.5 least_conn
按节点连接数分配,把请求优先分配给连接数少的节点。该策略主要为了解决,各个节点请求处理时间长短不一造成某些节点超负荷的情况
upstream webservers{ least_conn; server 192.168.9.134:8081; server 192.168.9.134:8082; }
标签:负载,8081,9.134,upstream,192.168,server,html,反向,Nginx04 From: https://www.cnblogs.com/jthr/p/16827617.html