1. 程式人生 > >nginx 配置反向代理,負載均衡實戰解析

nginx 配置反向代理,負載均衡實戰解析

16px 中介 www. pre 地址 try_files 訪問 自己 服務

前言:NGINX的反向代理和負載均衡是網站架構中經常用到的一種高並發,高可用的方案,下面我們直接實戰操作,當然理論也是要的。

一、反向代理

過程:反向代理:客戶端 一>代理 <一> 服務端

舉個例子:
    A(客戶端)想租一個房子,B(代理)就把這個房子租給了他。
  這時候實際上C(服務端)才是房東。
  B(代理)是中介把這個房子租給了A(客戶端)。這個過程中A(客戶端)並不知道這個房子到底誰才是房東
  他都有可能認為這個房子就是B(代理)的

總結:反向代理中客戶端是並不知道自己要訪問哪個服務器,反向代理模式屏蔽或者隱藏了真實服務器信息。

  結構圖

  技術分享圖片

  1、什麽是正向代理  

過程:客戶端 <一> 代理 一>服務端

舉個例子:A(客戶端)想租C(服務端)的房子,但是A(客戶端)並不認識C(服務端)租不到。
      B(代理)認識C(服務端)能租這個房子所以你找了B(代理)幫忙租到了這個房子。

總結:正向代理最大的特點是客戶端非常明確要訪問的服務器地址;服務器只清楚請求來自哪個代理服務器,而不清楚來自哪個具體的客戶端;正向代理模式屏蔽或者隱藏了真實客戶端信息。

  2、正向代理和反向代理的區別

  技術分享圖片

  3、反向代理各個參數說明

  技術分享圖片

二、負載均衡

說明:客戶端發送的、nginx反向代理服務器接收到的請求數量,就是我們說的負載量,請求數量按照一定的規則進行分發到不同的服務器處理的規則,就是一種均衡規則,所以將服務器接收到的請求按照規則分發的過程,稱為負載均衡。

示意圖

技術分享圖片

  nginx支持的負載均衡調度算法方式:關於Nginx負載均衡的6種策略

三、實戰操作

  1、環境

代理服務器(接收所有請求)
    192.168.8.146

服務器
    1、192.168.8.228:8080
    2、192.168.8.228:8081
    3、192.168.8.228:8082

  1)代理服務器

  技術分享圖片

  2)服務器 

1號服務器
server { listen 8080; server_name www.common.com; root /www/local; charset utf-8; index index.php index.html index.htm; try_files $uri $uri/ /index.php?$query_string; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

2號服務器
server {
      listen       8081;
      server_name  www.common.com;
  
      root /www/test-common/common/public;
  
      charset utf-8;
      index  index.php index.html index.htm;
      try_files $uri $uri/ /index.php?$query_string;
  
      location ~ \.php$ {
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          include        fastcgi_params;
      }
  }
3號服務器
server {
      listen       8082;
      server_name  www.common.com;
  
      root /www/test;
  
      charset utf-8;
      index  index.php index.html index.htm;
      try_files $uri $uri/ /index.php?$query_string;
  
      location ~ \.php$ {
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          include        fastcgi_params;
      }
  }

  2、效果

  技術分享圖片

  技術分享圖片

  技術分享圖片

四、總結

這篇文章只是簡單的試了下效果,而且均衡的方式只試了權重,包括代理方面,有些參數沒有配置,歡迎大家補充嘗試

nginx 配置反向代理,負載均衡實戰解析