婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux 系統 nginx 服務器安裝及負載均衡配置詳解

Linux 系統 nginx 服務器安裝及負載均衡配置詳解

熱門標簽:蕪湖呼叫中心外呼系統哪家強 征服者快捷酒店地圖標注 電銷機器人怎么錄音 貴陽語音電銷機器人 貴港市機器人外呼系統團隊 天津外呼系統運營商 漯河電銷外呼系統價格 ec外呼系統怎么樣 咸陽穩定外呼系統公司

nginx(engine x) 是一個 高性能 的 HTTP 和 反向代理 服務器、郵件代理服務器以及通用的 TCP/UDP 代理服務器。其特點為輕量級(占用系統資源少)、穩定性好、可擴展性(模塊化結構)、并發能力強、配置簡單等。

本文主要介紹在測試環境中通過 nginx 實現基本的 負載均衡 功能。

nginx 可以提供 HTTP 服務,包括處理靜態文件,支持 SSL 和 TLS SNI、GZIP 網頁壓縮、虛擬主機、URL 重寫等功能,可以搭配 FastCGI、uwsgi 等程序處理動態請求。

此外,nginx 還可以用于代理、反向代理、負載均衡、緩存等服務器功能,在集群環境中改善網絡負載、提高可用性。

一、搭建測試環境

這里的測試環境為通過VirtualBox 安裝的兩臺Lubuntu 19.04 虛擬機,Linux 系統安裝方法不作贅述。

為了保證兩臺 Linux 虛擬機之間的相互訪問,虛擬機的網絡配置除了默認的 NAT 方式外,還使用了 VirtualBox 軟件提供的內部網絡(Internal) 聯網方式。

此外,還需要將兩臺虛擬機中與“內部網絡”相關聯的網卡,綁定上 同一網段 的靜態 IP 地址,則兩臺主機形成局域網絡,相互之間可以直接訪問。

網絡配置

打開 VirtualBox 軟件,分別進入兩臺虛擬機的設置界面,為其添加 連接方式為內部網絡 的網絡連接,截圖如下(兩臺虛擬機作同樣的配置):

內部網絡

登錄進虛擬機系統,使用 ip addr 命令查看當前的網絡連接信息:

$ ip addr
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 08:00:27:38:65:a8 brd ff:ff:ff:ff:ff:ff
 inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
  valid_lft 86390sec preferred_lft 86390sec
 inet6 fe80::9a49:54d3:2ea6:1b50/64 scope link noprefixroute
  valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 08:00:27:0d:0b:de brd ff:ff:ff:ff:ff:ff
 inet6 fe80::2329:85bd:937e:c484/64 scope link noprefixroute
  valid_lft forever preferred_lft forever

可以看到,此時的 enp0s8 網卡還沒有綁定 IPv4 地址,需要為其手動指定靜態 IP。

需要 注意 的是,從 Ubuntu 17.10 版本開始,一個新的名為 netplan 的工具被引入,原來的網絡配置文件 /etc/network/interfaces 不再生效。

所以為網卡設置靜態 IP 時需要修改 /etc/netplan/01-network-manager-all.yaml 配置文件,示例如下:

network:
 version: 2
 renderer: NetworkManager
  ethernets:
  enp0s8:
   dhcp4: no
   dhcp6: no
   addresses: [192.168.1.101/24]
#   gateway4: 192.168.1.101
#   nameservers:
#     addresses: [192.168.1.101, 8.8.8.8]

由于兩臺主機處于同一子網,網關和 DNS 服務器未配置的情況下仍可以互相訪問。對應的配置項暫時先注釋掉(后續可以嘗試自行搭建 DNS 服務器)。

編輯完成后運行 sudo netplan apply 命令,前面配置的靜態 IP 即可生效。

$ ip addr
...
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
  link/ether 08:00:27:0d:0b:de brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.101/24 brd 192.168.1.255 scope global noprefixroute enp0s8
    valid_lft forever preferred_lft forever
  inet6 fe80::a00:27ff:fe0d:bde/64 scope link
    valid_lft forever preferred_lft forever

登錄進另一臺虛擬機中,執行同樣的操作(注意配置文件中的 addresses 項改為 [192.168.1.102/24] )。兩臺虛擬機的網絡即配置完成。

此時有 Linux 虛擬機 server1,IP 地址為 192.168.1.101;Linux 虛擬機 server2,IP 地址為 192.168.1.102。兩臺主機可相互訪問。測試如下:

starky@server1:~$ ping 192.168.1.102 -c 2
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=0.951 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=64 time=0.330 ms
--- 192.168.1.102 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.330/0.640/0.951/0.311 ms
skitar@server2:~$ ping 192.168.1.101 -c 2
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.223 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.249 ms
--- 192.168.1.101 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 29ms
rtt min/avg/max/mdev = 0.223/0.236/0.249/0.013 ms

二、安裝 nginx 服務器

nginx 的安裝方式主要有兩種:

  • 預編譯的二進制程序。這是最簡單和最快速的安裝方式,各主流操作系統都可以通過包管理器(如 Ubuntu 的 apt-get)安裝。此種方式會安裝幾乎所有的 官方 模塊或插件。
  • 從源代碼編譯安裝。這種方式相對于前者更加靈活,可以自行選擇需要安裝的模塊或第三方插件。

本示例并沒有特殊的需求,所以直接選擇第一種安裝方式。命令如下:

$ sudo apt-get update
$ sudo apt-get install nginx

安裝成功后,通過 systemctl status nginx 命令查看 nginx 服務的運行狀態:

$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
  Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
  Active: active (running) since Tue 2019-07-02 01:22:07 CST; 26s ago
   Docs: man:nginx(8)
 Main PID: 3748 (nginx)
  Tasks: 2 (limit: 1092)
  Memory: 4.9M
  CGroup: /system.slice/nginx.service
      ├─3748 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
      └─3749 nginx: worker process

通過 curl -I 127.0.0.1 命令驗證 Web 服務器是否可以正常訪問:

$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.15.9 (Ubuntu)
...

三、負載均衡配置

負載均衡(load-balancing)即按照一定的規則將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度。

簡單的示例圖如下:

load-balancing

如某網站應用部署在多臺主機構成的服務器集群上,負載均衡服務器位于終端用戶和服務器集群之間,負責接收終端用戶的訪問流量,并根據一定的規則將用戶訪問 分發 給后端的服務器主機,從而提高在高并發狀態下的響應速度。

負載均衡服務器

nginx 可以通過 upstream 選項配置負載均衡。這里使用虛擬機 server1 作為負載均衡服務器。

修改 serve1 上默認站點的配置文件( sudo vim /etc/nginx/sites-available/default ),改為如下內容:

upstream backend {
  server 192.168.1.102:8000;
  server 192.168.1.102;
}
server {
  listen 80;

  location / {
    proxy_pass http://backend;
  }
}

基于測試的目的,當前只有兩臺虛擬機。server1(192.168.1.101)已經作為負載均衡服務器,所以使用 server2(192.168.1.102)作為應用服務器。

這里借助 nginx 的虛擬主機功能,分別將 192.168.1.102 和 192.168.1.102:8000 “模擬”為兩臺不同的應用服務器。

應用服務器

修改 server2 上默認站點的配置文件( sudo vim /etc/nginx/sites-available/default ),改為如下內容:

server {
    listen 80;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name 192.168.1.102;

    location / {
        try_files $uri $uri/ =404;
    }
}

在 /var/www/html 目錄下創建 index.html 文件,作為 default 站點的 index 頁面,內容如下:

<html>
  <head>
    <title>Index Page From Server1</title>
  </head>
  <body>
    <h1>This is Server1, Address 192.168.1.102.</h1>
  </body>
</html>

運行 sudo systemctl restart nginx 命令重啟 nginx 服務,此時訪問http://192.168.1.102 即可獲取剛剛創建的 index.html 頁面:

$ curl 192.168.1.102
<html>
  <head>
    <title>Index Page From Server1</title>
  </head>
  <body>
    <h1>This is Server1, Address 192.168.1.102.</h1>
  </body>
</html>

配置“另一臺主機”上的站點,在 server2 上創建 /etc/nginx/sites-available/server2 配置文件,內容如下:

server {
    listen 8000;

    root /var/www/html;

    index index2.html index.htm index.nginx-debian.html;

    server_name 192.168.1.102;

    location / {
        try_files $uri $uri/ =404;
    }
}

注意監聽端口和 index 頁面的配置變化。在 /var/www/html 目錄下創建 index2.html 文件,作為 server2 站點的 index 頁面,內容如下:

<html>
  <head>
    <title>Index Page From Server2</title>
  </head>
  <body>
    <h1>This is Server2, Address 192.168.1.102:8000.</h1>
  </body>
</html>

PS:為了測試目的,default 站點和 server2 站點配置在同一個主機 server2 上,且頁面稍有不同。實際環境中通常將這兩個站點配置在不同的主機上,且內容一致。

運行 sudo ln -s /etc/nginx/sites-available/server2 /etc/nginx/sites-enabled/ 命令啟用剛剛創建的 server2 站點。

重啟 nginx 服務,此時訪問 http://192.168.1.102:8000 即可獲取剛剛創建的 index2.html 頁面:

$ curl 192.168.1.102:8000
<html>
  <head>
    <title>Index Page From Server2</title>
  </head>
  <body>
    <h1>This is Server2, Address 192.168.1.102:8000.</h1>
  </body>
</html>

負載均衡測試

回到負載均衡服務器即虛擬機 server1 上,其配置文件中設置的 反向代理 URL 為 http://backend 。

由于未曾配置域名解析服務,無法將 URLhttp://backend 定位到正確的位置。

可以修改 server1 上的 /etc/hosts 文件,添加如下一條記錄:

127.0.0.1 backend

即可將該域名解析到本地 IP ,完成對負載均衡服務器的訪問。

重啟 nginx 服務,在 server1 上訪問http://backend ,效果如下:

$ curl http://backend
<html>
  <head>
    <title>Index Page From Server1</title>
  </head>
  <body>
    <h1>This is Server1, Address 192.168.1.102.</h1>
  </body>
</html>
$ curl http://backend
<html>
  <head>
    <title>Index Page From Server2</title>
  </head>
  <body>
    <h1>This is Server2, Address 192.168.1.102:8000.</h1>
  </body>
</html>
$ curl http://backend
<html>
  <head>
    <title>Index Page From Server1</title>
  </head>
  <body>
    <h1>This is Server1, Address 192.168.1.102.</h1>
  </body>
</html>
$ curl http://backend
<html>
  <head>
    <title>Index Page From Server2</title>
  </head>
  <body>
    <h1>This is Server2, Address 192.168.1.102:8000.</h1>
  </body>
</html>

從輸出中可以看出,server1 對負載均衡服務器http://backend 的訪問,完成了對應用服務器 server2 上兩個 Web 站點的 輪詢 ,起到負載均衡的作用。

四、負載均衡方法

nginx 開源版本提供四種負載均衡的實現方式,簡單介紹如下。

1. Round Robin

用戶請求 均勻 地分配給后端服務器集群(可以通過 weight 選項設置輪詢的 權重 ),這是 nginx 默認使用的負載均衡方式:

upstream backend {
  server backend1.example.com weight=5;
  server backend2.example.com;
}

2. Least Connections

用戶請求會優先轉發給集群中當前活躍連接數最少的服務器。同樣支持 weight 選項。

upstream backend {
  least_conn;
  server backend1.example.com;
  server backend2.example.com;
}

3. IP Hash

用戶請求會根據 客戶端 IP 地址 進行轉發。即該方式意圖保證某個特定的客戶端最終會訪問 同一個 服務器主機。

upstream backend {
  ip_hash;
  server backend1.example.com;
  server backend2.example.com;
}

4. Generic Hash

用戶請求會根據一個 自定義鍵值 確定最終轉發的目的地,該鍵值可以是字符串、變量或者組合(如源 IP 和端口號)。

upstream backend {
  hash $request_uri consistent;
  server backend1.example.com;
  server backend2.example.com;
}

權重

參考下面的示例配置:

upstream backend {
  server backend1.example.com weight=5;
  server backend2.example.com;
  server 192.0.0.1 backup;
}

默認權重(weight)為 1 。 backup 服務器 只有在所有其他服務器全部宕機的情況下才會接收請求。

如上面的示例,每 6 個請求會有 5 個轉發給 backend1.example.com,1 個轉發給 backend2.example.com。只有當 backend1 和 backend2 全部宕機時,192.0.0.1 才會接收并處理請求。

參考資料

HTTP Load Balancing

總結

以上所述是小編給大家介紹的Linux 系統 nginx 服務器安裝及負載均衡配置詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:攀枝花 東營 濰坊 怒江 淮北 西寧 香港 西藏

巨人網絡通訊聲明:本文標題《Linux 系統 nginx 服務器安裝及負載均衡配置詳解》,本文關鍵詞  Linux,系統,nginx,服務器,安裝,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux 系統 nginx 服務器安裝及負載均衡配置詳解》相關的同類信息!
  • 本頁收集關于Linux 系統 nginx 服務器安裝及負載均衡配置詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色老汉一区二区三区| 自拍偷拍欧美激情| 日本韩国欧美国产| 激情五月婷婷综合| 久久精品这里都是精品| 欧美一区二区三区在线看| 狠狠色狠狠色合久久伊人| 精品99一区二区| 日韩视频永久免费| 韩国欧美国产1区| 久久综合久久鬼色| 欧美精品一区二区三区蜜臀| 久久精品国产精品亚洲精品| 成人黄色一级视频| 懂色av中文一区二区三区| 国产精品久久久久久久久免费桃花 | 亚洲一区二区三区四区在线观看| 久久电影网站中文字幕| 青青国产91久久久久久| 久久九九久久九九| 国内不卡的二区三区中文字幕| 精品国产乱码久久久久久免费| 国产一区二区三区四区五区美女 | 亚洲视频中文字幕| 777xxx欧美| www.亚洲人| 色综合天天综合网天天狠天天| 丝袜脚交一区二区| 国产精品毛片无遮挡高清| 欧美韩国一区二区| 欧美电影一区二区| 亚洲h精品动漫在线观看| 天堂蜜桃一区二区三区| 国产精品免费视频网站| 亚洲欧美偷拍三级| 久久在线免费观看| 欧美吞精做爰啪啪高潮| 日韩欧美国产综合在线一区二区三区| 成人av免费在线观看| 91成人免费在线视频| 国产一区二区女| 一本色道久久加勒比精品 | 精品成a人在线观看| 国产精品福利一区| wwww国产精品欧美| 国产精品一区二区在线看| 麻豆国产欧美日韩综合精品二区 | 国产一区二区看久久| 日本欧美一区二区三区乱码| 91精品1区2区| 欧美成人伊人久久综合网| 91极品视觉盛宴| 91麻豆精东视频| www.成人网.com| 国产成人自拍高清视频在线免费播放| 香蕉成人伊视频在线观看| 国产综合久久久久久久久久久久| 一区二区三区**美女毛片| 欧美aaaaaa午夜精品| 亚洲综合激情小说| 国产v日产∨综合v精品视频| 久久草av在线| 亚洲老妇xxxxxx| 精品午夜久久福利影院| 午夜视频一区二区三区| 成人美女视频在线观看18| 久久精品噜噜噜成人av农村| 久久99国产精品久久99果冻传媒 | 日韩免费视频线观看| 久久综合狠狠综合久久综合88 | 亚洲国产日韩av| 看片网站欧美日韩| 性感美女久久精品| 成人免费视频一区| 99麻豆久久久国产精品免费优播| 日韩欧美黄色影院| 久久久久国产精品人| 91久久精品一区二区三区| 久久众筹精品私拍模特| 精品久久久久久亚洲综合网| 午夜欧美电影在线观看| 日日噜噜夜夜狠狠视频欧美人| 91欧美一区二区| 欧美性三三影院| 亚洲天堂福利av| 亚洲国产wwwccc36天堂| 99精品热视频| 日本久久电影网| 国产欧美精品一区二区色综合| 中文子幕无线码一区tr| 欧美经典三级视频一区二区三区| 一区二区三区精密机械公司| 欧美r级电影在线观看| 麻豆视频一区二区| 免费高清在线视频一区·| 欧美片在线播放| www欧美成人18+| 国产精品白丝jk白祙喷水网站| 成人蜜臀av电影| 国产精品久久久久一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| gogogo免费视频观看亚洲一| 欧美日韩亚州综合| 蜜臀久久99精品久久久久宅男| 不卡高清视频专区| 婷婷开心激情综合| 国产精品亲子伦对白| 亚洲国产综合人成综合网站| 亚洲午夜羞羞片| 日韩一区二区电影网| 日韩精彩视频在线观看| 国产一区二区三区免费观看| 国产偷国产偷精品高清尤物| 一区二区三区精品久久久| 在线观看91av| 2021久久国产精品不只是精品| 国产成人在线视频网站| 精品视频在线视频| 午夜影院久久久| av一区二区不卡| 一区二区三区久久| 视频一区二区欧美| 精品一区二区在线视频| 六月丁香婷婷久久| 国产精品嫩草久久久久| 久久爱www久久做| 国产农村妇女毛片精品久久麻豆| 一区二区三区欧美久久| 精品少妇一区二区三区| 亚洲国产日韩在线一区模特| 精品国产91久久久久久久妲己| 欧美日韩一区不卡| 韩国成人福利片在线播放| 欧美三区在线观看| 精品一区二区免费| 欧美一级午夜免费电影| 99久久精品国产观看| 欧美国产日本视频| 欧美日韩www| 亚洲国产日日夜夜| 欧美群妇大交群的观看方式| 欧美一区二区三区四区久久| 亚洲卡通欧美制服中文| 91麻豆国产精品久久| 亚洲婷婷在线视频| 99久久综合狠狠综合久久| 国产精品美女视频| 国产不卡视频一区二区三区| 日韩免费视频一区二区| 日韩精品1区2区3区| 91精品国产手机| 国产欧美精品在线观看| 亚洲一区免费在线观看| 亚洲国产精品影院| 九九久久精品视频| 性久久久久久久久久久久| 欧美日韩国产综合一区二区| 国产麻豆精品久久一二三| 久久久久久久一区| 日韩免费性生活视频播放| 久久成人精品无人区| 日本一区二区成人在线| 99国产精品久| 国产揄拍国内精品对白| 精品国产一区久久| 久久激情五月激情| 91色porny在线视频| 老司机精品视频在线| 国产亚洲视频系列| 91久久线看在观草草青青| 色女孩综合影院| 久久色在线观看| 精品国产a毛片| 亚洲欧美日韩中文播放| 欧美mv日韩mv国产网站app| 欧美xxxx老人做受| 成人av电影免费在线播放| 成人高清在线视频| 亚洲午夜影视影院在线观看| 国产精品久久久久精k8| 色先锋资源久久综合| 欧美少妇一区二区| 久久99久久精品欧美| 狠狠色丁香婷婷综合| 国产精品看片你懂得 | 亚洲国产精品99久久久久久久久| 日韩午夜电影av| 狠狠色综合色综合网络| 国产精品一区二区久久不卡| 中文字幕一区二区三区蜜月| 中国色在线观看另类| 欧美日韩久久不卡| 欧美成人午夜电影| 在线视频你懂得一区| 欧美日本在线播放| 麻豆一区二区三区| av毛片久久久久**hd| 久久久精品2019中文字幕之3| 国产日韩影视精品| 久久精品免费看|