使用Nginx配置负载均衡的方法

2022-06-30 05:29:58  浏览:313  作者:管理员
  • 使用Nginx配置负载均衡的方法

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • Q Q 号:

  • 手机号:

  • 浏览量:

    313


【货源详情】


  web服务是拓展应用软件并提升 其特性和沉余的极佳方式,Nginx是一种时兴的Web服务端手机软件,能够配备为简易且功能齐全的负载均衡设备,以提升 服务器空间的易用性和高效率。在web服务配备中,nginx当做在好几个独立网络服务器上工作中的分布式系统Web应用软件的单独通道点。

Nginx配置负载均衡

  本手册详细介绍怎么使用nginx为云端口设置web服务。做为前提条件,您必须最少安裝两部服务器并安裝Web服务端手机软件。

  安裝nginx

  依照您喜爱的方法设定网络服务器,加上客户,运作升级等以后,应用下列方式安裝nginx。

  #Debiansudo nano /etc/apt/sources.list#将以下几点加上到目录结尾http://nginx.org/packages/debian/jessie nginxdeb-src http://nginx.org/packages/ debian / jessie nginx#储存文档,撤出在线编辑器,随后运作下列指令sudo aptitude updatesudo aptitude install nginx #Ubuntunginx = stablesudo add-apt-repository ppa:nginx / $ nginxsudo apt-get updatesudo apt-get install nginx #CentOSsudo vi /etc/yum.repos.d/nginx.repo#在文档中键入以下几点[nginx]name = nginx repobaseurl = http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck = 0enabled = 1 #Save并撤出,随后应用下边的指令sudo yum updatesudo yum install nginx

  安裝后将文件目录更改成nginx主配备文件夹名称。

  cd / etc / nginx /

  依据所应用的电脑操作系统,Web服务端环境变量将坐落于2个部位之一。

  Ubuntu和Debian遵照在/ etc / nginx / sites-available /中储存云虚拟主机文档的标准,这种标准根据标记连接开启到/ etc / nginx / sites-enabled /。您能够应用下列指令开启一切新的云虚拟主机文档。

  sudo ln -s / etc / nginx / sites-available / vhost / etc / nginx / sites-enabled / vhost

  CentOS客户能够在/etc/nginx/conf.d/下寻找其服务器配置文档,在其中载入了一切.conf种类的云虚拟主机文档。

  查验您是不是能够寻找默认设置配备,随后重启nginx。

  sudo service nginx restart

  根据在Web电脑浏览器中开启负载均衡设备网络服务器的公共性IP地址来检测网络服务器是不是回应HTTP要求。当您见到nginx的默认设置启动页时,则表明安裝取得成功。

  假如在载入网页页面时碰到难题,请查验服务器防火墙是不是阻拦了该联接。比如,在CentOS 7上,默认设置服务器防火墙标准不允许HTTP traffic,请应用下列指令开启它。

  sudo firewall-cmd --add-service = http--permanent sudo firewall-cmd –reload

  随后试着重新加载电脑浏览器。

  将nginx配备为负载均衡设备的方式

  安裝并检测nginx后,能够逐渐配备以完成web服务。从实质上讲,您必须做的便是设定nginx,在其中包括要监视的联接种类及其跳转部位的表明。要完成此目地,请应用您喜爱的一切文本编辑建立新的环境变量,比如应用nano:

  sudo nano /etc/nginx/conf.d/load-balancer.conf

  在load-balancer.conf中,您必须界定下列2个段:upstreamandserver,客户程序下边的实例。

  #界定要包括在web服务计划方案中的网络服务器。

  #最好是应用网络服务器的独享IP以得到 更强的特性和安全系数。

  upstream backend{ server 10.1.0.101; server 10.1.0.102; server 10.1.0.103;}

  #这一网络服务器接纳全部通讯端口号80,并将其传送到upstream。

  #一定要注意,upstream名字和proxy_pass必须配对。

  server { listen 80; location / { proxy_pass http:// backend; }}

  随后储存文档并撤出在线编辑器。

  下面,您必须禁止使用此前在安裝后检测的默认设置服务器的配置,一样在于电脑操作系统。

  在Debian和Ubuntu系统软件上,您必须从开启网站的文件夹名称中删掉默认设置标记连接。

  sudo rm / etc / nginx / sites-enabled / default

  CentOS的服务器不应用同样的连接,而不是简易的改名default.conf在conf.d /文件目录下的物品,比如:

  sudo mv /etc/nginx/conf.d/default.conf/etc/nginx/conf.d/default.conf.disabled

  随后应用下列指令重启nginx。

  sudo service nginx restart

  查验nginx是不是取得成功运行,假如重启不成功,请查询刚建立的/etc/nginx/conf.d/load-balancer.conf,以保证 沒有不正确种类或缺乏分号。

  在Web电脑浏览器中键入负载均衡设备的公共性IP地址时,如今应当将其传送给在其中一台后端开发网络服务器。

  web服务方式

  要是没有界定别的方式,默认设置状况下应用nginx开展web服务会应用循环系统优化算法,如上边的第一个实例所显示。应用循环系统计划方案,将依据您在load-balancer.conf文档中设定的次序轮着挑选每一个网络服务器。这均衡了短期内实际操作的要求总数。

  根据至少联接的负载平衡是另一种简易的方式。说白了,此方式将要求定项到那时候具备至少主题活动联接的网络服务器。针对要求有时候很有可能必须更长期才可以进行的应用软件,它比循环制更合理。

  要开启至少联接均衡方式,请将主要参数least_conn加上到upstream一部分,以下例所显示。

  upstream backend { least_conn; server 10.1.0.101; server 10.1.0.102; server 10.1.0.103;}

  尽管循环系统和至少联接均衡计划方案是公平公正的,可是他们不可以出示对话持续性。假如您的Web应用软件规定客户接着被定项到与以前联接同样的后端开发网络服务器,则应应用IPhach方式。IPhach应用来访者IP地址做为密匙来明确应挑选哪一个服务器来为要求出示服务项目。这容许来访者每一次被定项到同一网络服务器,被授于网络服务器可以用且来访者的IP地址未被变更。

  要应用此方式,请将ip_hash-parameter加上到upstream,如下边的实例所显示。

  upstream backend { ip_hash; server 10.1.0.101; server 10.1.0.102; server 10.1.0.103;}

  在不一样服务器中间的可以用資源不相同的端口设置中,很有可能期待一些网络服务器优先选择于别的网络服务器。界定网络服务器权重值容许您应用nginx进一步调整web服务。负载均衡设备中权重值最大的网络服务器最常挑选。

  upstream backend { server 10.1.0.101 weight = 4; server 10.1.0.102 weight = 2; server 10.1.0.103;}

  比如,在上面表明的配备中,第一个网络服务器的挑选頻率是第二个网络服务器的二倍,与第三个网络服务器对比,它再度得到 二倍的要求。

  开启HTTPS的web服务

  在负载均衡设备环境变量中加上另一个网络服务器一部分,该文件应用SSL监听端口号443上的HTTPS总流量,并且为upstream设定proxy_pass,如同上一个实例中的HTTP一样。

  再度开启环境变量开展编写。

  sudo nano /etc/nginx/conf.d/load-balancer.conf

  随后将下列网络服务器段加上到文档结尾。

  server { listen 443 ssl; server_name domain_name ; ssl_certificate / etc / letsencrypt / live / domain_name /cert.pem; ssl_certificate_key / etc / letsencrypt / live / domain_name /privkey.pem; location / { proxy_pass http:// backend; }}

  随后储存文档,撤出在线编辑器并再度应用重启nginx

  sudo service nginx restart

  结果

  假如您期待提升 Web应用软件的特性和易用性,那麼设定web服务肯定非常值得考虑到。尽管应用好几个服务器能够维护Web服务具备沉余,但web服务自身依然能够留有服务器宕机。您能够根据在好几个负载平衡器中间设定波动IP来进一步提高可扩展性。

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部