加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

负载均衡与反向代理(Nginx/OpenResty)

发布时间:2019-09-19 00:59:41 所属栏目:业界 来源:今日头条
导读:我们行使Nginx时,大大都场景下行使的都是七层的HTTP负载平衡(ngx_http_upstream_module)。在1.9.0版本往后,Nginx也开始支持TCP(ngx_stream_upstream_module)四层负载平衡。 四层/七层负载平衡的区别 四层负载平衡,就是基于IP+端口的负载平衡(TCP/UDP)。

域名上游处事器

  1. upstream backend { 
  2.  server c0.3.cn; 
  3.  server c1.3.cn; 

上面的设置在加载时,host就会被理会成IP。可是当host的IP改观时,IP不会改变。可是贸易版的Nginx是支持动态改观IP的。其它proxy_pass http://c1.3.cn是可以支持动态理会的,可是这样反向署理就只能设置一台了,较量忧伤。尚有一种办理方案就是lua剧本动态理会。这里不再赘述了。

备份上游处事器

  1. upstream backend { 
  2.  server 192.168.0.1:8080 weight=1; 
  3.  server 192.168.0.2:8080 weight=2 backup; 

上面192.168.0.2被设置为备份处事器,当全部上游主机都不存活时,哀求就会被转发给备份处事器。

不行用处事器

  1. upstream backend { 
  2.  server 192.168.0.1:8080 weight=1; 
  3.  server 192.168.0.2:8080 weight=2 down; 

当上游处事器呈现妨碍时,可以通过该设置姑且摘除呆板。

设置示例

除了反向署理之外,还可以行使缓存来镌汰上游处事器的压力。

全局设置(proxy cache)

  1. proxy_buffering on; 
  2. proxy_buffer_size 4k; 
  3. proxy_buffers 512 4k; 
  4. proxy_busy_buffers_size 64k; 
  5. proxy_temp_file_write_size 256k; 
  6. proxy_cache_lock on; 
  7. proxy_cache_lock_timeout 200ms; 
  8. proxy_temp_path /tmp/proxy_temp; 
  9. proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=cache:512m inactive=5m max_size=8g; 
  10. proxy_connect_timeout 3s; 
  11. proxy_read_timeout 5s; 
  12. proxy_send_timeout 5s; 

开启proxy buffer后,缓存内容将存放在文件体系中,从而进步体系机能。

location 设置

  1. location ~ ^/backend/(.*)$ { 
  2.  # 配置同等性哈希负载平衡key 
  3.  set_by_lua_file $consistent_key "lua/balancing.lua"; 
  4.  # 失败重试设置 
  5.  proxy_next_upstream error timeout http_500 http_502 http_504; 
  6.  proxy_next_upstream_timeout 2s; 
  7.  proxy_next_upstream_tries 2; 
  8.  # 哀求上游处事器行使GET要领(无论客户端哀求要领) 
  9.  proxy_method GET; 
  10.  # 不给上游处事器转达哀求体 
  11.  proxy_pass_request_body off; 
  12.  # 不给上游处事器转达哀求头 
  13.  proxy_pass_request_headers off; 
  14.  # 配置上游处事器哪些相应头不发送给客户端 
  15.  proxy_hide_header Vary; 
  16.  # 支持keep-alive 
  17.  proxy_http_version 1.1; 
  18.  proxy_set_header Connection ""; 
  19.  # 给上游处事器转达Referer、Cookie和Host(按需转达) 
  20.  proxy_set_header Referer $http_referer; 
  21.  proxy_set_header Cookie $http_cookie; 
  22.  proxy_set_header Host www.moguhu.com; 
  23.  proxy_pass http://backend /$1$is_args$args; 

凡是环境下,为了镌汰收集开销,一样平常会行使gzip来镌汰收集数据包的巨细。

  1. gzip on; 
  2. gzip_min_length 1k; 
  3. gzip_buffers 16 16k; 
  4. gzip_http_version 1.1; 
  5. gzip_proxied any; 
  6. gzip_comp_level 2; 
  7. gzip_types text/plain application/x-javascript text/css application/xml; 
  8. gzip_vary on; 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读