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

如何搭建Nginx服务器做到负载均衡?

发布时间:2018-11-03 00:44:07 所属栏目:业界 来源:程序员食堂
导读:1.什么是Nginx? Nginx也是一款处事器,我们常用它做:如反向署理、负载平衡、动态与静态资源的疏散的事变。 反向署理:相对应的是正向署理,假如你行使过署理处事器的话就大白,我们会见某一个网站并非直接会见方针网站,而是汇报署理处事器我必要会见什么
副问题[/!--empirenews.page--]

1.什么是Nginx?

Nginx也是一款处事器,我们常用它做:如反向署理、负载平衡、动态与静态资源的疏散的事变。

反向署理:相对应的是正向署理,假如你行使过署理处事器的话就大白,我们会见某一个网站并非直接会见方针网站,而是汇报署理处事器我必要会见什么方针网站,由署理处事器发出哀求给方针网站,将方针网站会见功效再转发给你,此时,你是哀求署理方。而反向署理是此时署理处事器做处事器的署理,我们的会见哀求并非直接会见到方针处事器上,而是会见署理处事器,由署理处事器抉择什么样的哀求以什么样的方法会见正式处事器。

怎样搭建Nginx处事器做到负载平衡?

负载平衡:今朝大大都的网站城市回收负载平衡本领来针对今朝用户的指数级增添来镌汰对单点处事器的负载压力,好比今朝我们拥有3台真实处事器,我们必要按摄影应计策抉择什么样的用户哀求分派到哪个真实处事器,好比凭证轮询的方法,用户哀求挨个达到署理处事器,此时署理处事器凭证第一个哀求转发至第一台真实处事器,第二个哀求转发到第二个处事器上,依次类推,这样可以防备大量的用户哀叱责部会见到统一台物理机上,单点物理机的机能始终有限的,虽然这也许对处事器数据会见时辰造成事宜性的失效,在Web方面也许造成Session会见的题目,这不在本文接头方面内。

动态静态资源疏散:最利便罗列就是Java的JSP和静态资源如:.js/.css/.html/.png方面的资源疏散,之前开拓web方面的措施时辰我们风俗将html、css等资源文件也安排于Tomcat之中,用户会见后tomcat必要将哀求的这些静态资源文件一并返回给用户,再者假若有多台同营业逻辑的tomcat处事器的话,同样的资源还必要在每个处事器上放一份,同时也增进了tomcat处事器的收集IO,异常不合算的,假如我们只讲JSP之类的哀求交给tomcat,而署理处事器上存放静态资源,当用户的哀求非动态资源的时辰,我们完全可以将署理处事器的静态资源直接返回给用户,而不去增大Tomcat的压力,tomcat只必要认真逻辑处理赏罚和动态资源的加载就可以了。

基于上述的Nginx上风,抉择搭建一下Nginx+Tomcat的组合来举办测试,包罗参数转达,post、get转达参数是否有影响,尚有Nginx的事变模式master和worker的事变方法举办一些浮浅的总结。若有错误,恳请各人指出。

2.Nginx的安装题目?

安装部门这里就不在细说了,网上的教程许多,我们直接从设置文件开始吧

3.设置文件

  1. #user  nobody; 
  2. #这里是焦点worker数,一样平常配置为与cpu焦点数沟通的数量,停止历程切换造成的上下文切换淹灭资源,cpu信息可以从/proc/cpuinfo中查察 
  3. worker_processes  1; 
  4.  
  5. #error_log  logs/error.log; 
  6. #error_log  logs/error.log  notice; 
  7. #error_log  logs/error.log  info; 
  8. #pid      logs/nginx.pid; 
  9. events { 
  10.     #use epoll model行使epoll模子,回收异步非阻塞模子加速处理赏罚速率 
  11.     use epoll;    worker_connections  1024; } 
  12. http {    include       mime.types;    default_type  application/octet-stream;   
  13.  #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    #设定通过nginx上传文件的巨细    client_max_body_size 300m; 
  14. #行使sendfile函数在两个文件描写符之间直接转达数据(完全在内核中操纵,传送),从而停止了内核缓冲区数据和用户缓冲区数据之间的拷贝,操纵服从很高,被称之为零拷贝。    sendfile        on; 
  15.    #tcp_nopush     on;    #keepalive_timeout  0;    #毗连活泼时刻    keepalive_timeout  65;#行使压缩数据镌汰IO量,可是在不支持数据解压赏识器也许发生乱码    #gzip  on;    #静态处事器组    #设定静态资源处事器会见接口      upstream static.zh-jieli.com {       
  16.            server localhost:808 weight=1;      }      #动态处事器组      upstream zh-jieli.com {         
  17. #配置Hash轮询法则 
  18. #ip_hash; 
  19. #weight: server ip:port weight=10#默认 轮询# 
  20. fair:凭证后端处事器的相应时刻来分派 
  21. #url_hash:凭证url法则举办分派,使得牢靠的哀求分派到牢靠的处事器上                  server localhost:8080;         
  22.          server localhost:8081; 
  23.      }   
  24.  server{         listen 808;         server_name static;         location / {         }   location ~ .*.(js|css|ico|png|jpg|eot|svg|ttf|woff) {             #全部静态文件直接读取硬盘内容:读取的静态资源存放位置  root /apache-tomcat-8.5.24/webapps/ROOT ; 
  25.  #资源是否举办缓存与缓存时刻             expires 30d; #缓存30天         }     }     
  26. server {        listen       80;        server_name  localhost;         
  27.         #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   html;           
  28.             index  index1.html index.htm;        }        location ~ .*.(js|css|ico|png|jpg|eot|svg|ttf|woff) {                  #proxy_cache cache_one;              proxy_cache_valid 200 304 302 5d;              proxy_cache_valid any 5d;              proxy_cache_key '$host:$server_port$request_uri';              add_header X-Cache '$upstream_cache_status from $host';              proxy_pass http://static.zh-jieli.com;             # 全部静态文件直接读取硬盘              root /apache-tomcat-8.5.24/webapps/ROOT;              expires 30d; #缓存30天          }           
  29. #其他页面反向署理到tomcat容器          location ^~ /tomcat {           
  30.             index index;                   # proxy_pass http://localhost:8080/;             #设定署理处事器组              proxy_pass http://zh-jieli.com/;          }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    } } 

总结

(编辑:河北网)

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

热点阅读