亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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麻豆国产级在线| 中文字幕一区二区三区精彩视频| 99久久精品国产国产毛片| 青草国产在线观看| 99久久精品国产高清一区二区 | 日韩专区在线播放| 可以免费看毛片的网站| 日日爽天天| 99久久网站| 亚欧视频在线| 日本特黄特色aa大片免费| 久草免费在线色站| 深夜做爰性大片中文| 毛片高清| 欧美国产日韩一区二区三区| 成人高清免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产国语在线播放视频| 成人免费观看网欧美片| 久久99爰这里有精品国产| 黄视频网站免费| 精品久久久久久影院免费| 久久精品大片| 国产视频一区二区在线播放| 国产国产人免费视频成69堂| 日韩欧美一二三区| 91麻豆国产| 欧美a免费| 亚洲 欧美 91| 精品国产亚洲人成在线| 黄视频网站免费| 四虎影视库| 精品美女| 可以免费看污视频的网站| 可以在线看黄的网站| 青青久久精品| 香蕉视频三级| 成人免费网站久久久| 精品视频在线观看视频免费视频| 高清一级毛片一本到免费观看| 香蕉视频久久| 亚洲女人国产香蕉久久精品| 精品视频在线观看视频免费视频 | 国产亚洲免费观看| 精品国产一区二区三区久| 日韩avdvd| 国产美女在线观看| 国产91视频网| 成人高清免费| 91麻豆精品国产高清在线| 日本在线www| 九九久久国产精品| 99久久精品国产免费| 国产一级强片在线观看| 亚洲www美色| 精品视频在线观看免费| 国产国语在线播放视频| 天天色成人| 免费国产在线视频| 麻豆系列国产剧在线观看| 精品久久久久久中文字幕一区| 99热精品在线| 欧美一区二区三区在线观看| 国产欧美精品| 九九精品影院| 人人干人人插| 免费一级片网站| 欧美电影免费看大全| 国产精品1024永久免费视频 | 日本在线不卡视频| 久久99这里只有精品国产| 亚洲天堂一区二区三区四区| 97视频免费在线观看| 美女免费精品高清毛片在线视| 日本在线不卡视频| 久久精品成人一区二区三区| 欧美a级成人淫片免费看| 久久国产精品自由自在| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 美女免费精品高清毛片在线视| 久久精品免视看国产明星| 香蕉视频亚洲一级| 天天色色网| 亚洲第一页乱| 精品视频免费看| 免费的黄色小视频| 成人高清视频在线观看| 亚欧成人乱码一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产网站免费视频| 天天做人人爱夜夜爽2020| 九九久久国产精品| 成人影视在线播放| 久久99中文字幕| 91麻豆国产级在线| 国产伦精品一区二区三区在线观看| 国产亚洲精品aaa大片| 成人免费一级纶理片| 青青青草影院 | 日韩在线观看网站| 精品国产一区二区三区久久久蜜臀 | 亚洲第一页乱| 九九精品影院| 黄色免费三级| 91麻豆精品国产片在线观看| 精品视频免费观看| 国产一区二区精品| 精品国产一区二区三区精东影业| 国产不卡在线观看| 在线观看成人网 | 日韩专区一区| 可以在线看黄的网站| 韩国毛片 免费| 国产麻豆精品hdvideoss| 国产视频一区在线| 精品久久久久久影院免费| 色综合久久天天综合观看| 日本免费看视频| 国产一区二区精品在线观看| 欧美a级大片| 日韩中文字幕在线观看视频| 久久久久久久网| 午夜在线亚洲| 日本伦理片网站| 国产原创视频在线| 亚洲 欧美 91| 一级毛片视频播放| 精品视频一区二区三区免费| 国产伦精品一区三区视频| 免费一级片在线观看| 日韩专区在线播放| 欧美激情一区二区三区视频 | 一本高清在线| 欧美激情一区二区三区视频| a级黄色毛片免费播放视频| 久久99青青久久99久久| 日韩欧美一及在线播放| 精品久久久久久免费影院| 在线观看导航| 日本特黄特色aaa大片免费| 一级女性全黄生活片免费| 久久国产精品只做精品| 九九热精品免费观看| 日本免费看视频| 国产视频一区在线| 精品视频免费在线| 麻豆网站在线看| 国产麻豆精品免费视频| 国产高清在线精品一区二区 | 九九精品影院| 欧美a级片视频| 亚洲天堂在线播放| 日日日夜夜操| 国产伦久视频免费观看 视频| 亚欧视频在线| 免费一级片在线观看| 国产一区二区精品久久| 国产高清视频免费| 一级女性全黄生活片免费| 久久国产一久久高清| 黄视频网站在线看| 日韩专区亚洲综合久久| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品在线观看一区| 日韩中文字幕一区二区不卡| 青青青草影院| 亚洲精品影院一区二区| 国产视频一区二区在线观看| 欧美a级v片不卡在线观看| 日本在线www| 欧美a级成人淫片免费看| 亚洲www美色| 午夜久久网| 亚洲精品中文字幕久久久久久| 青青久热| 国产不卡福利| 国产一区二区精品| 在线观看成人网 | 日韩男人天堂| 成人av在线播放| 久久99爰这里有精品国产| 免费毛片播放| 国产高清在线精品一区a| 美女免费精品视频在线观看| 亚洲第一页乱| 欧美激情一区二区三区在线| 在线观看成人网 | 韩国毛片免费| 国产精品自拍一区| a级毛片免费观看网站| 国产一级强片在线观看| 国产a网| 91麻豆国产| 日韩免费在线观看视频| 国产视频久久久久| 超级乱淫黄漫画免费| 成人免费一级纶理片|