91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下nginx服務器安裝及負載均衡怎么配置

發布時間:2022-05-21 11:21:56 來源:億速云 閱讀:165 作者:iii 欄目:大數據

這篇文章主要介紹“Linux下nginx服務器安裝及負載均衡怎么配置”,在日常操作中,相信很多人在Linux下nginx服務器安裝及負載均衡怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux下nginx服務器安裝及負載均衡怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、搭建測試環境

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

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

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

網絡配置

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

Linux下nginx服務器安裝及負載均衡怎么配置

內部網絡

登錄進虛擬機系統,使用 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)即按照一定的規則將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度。

簡單的示例圖如下:

Linux下nginx服務器安裝及負載均衡怎么配置

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 服務,此時訪問 即可獲取剛剛創建的 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 服務,此時訪問  即可獲取剛剛創建的 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 為  。

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

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

127.0.0.1 backend

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

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

$ 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 對負載均衡服務器 的訪問,完成了對應用服務器 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 才會接收并處理請求。

到此,關于“Linux下nginx服務器安裝及負載均衡怎么配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荔波县| 正定县| 乌苏市| 秭归县| 萨嘎县| 察雅县| 时尚| 拜城县| 盐源县| 福安市| 乌拉特中旗| 博白县| 西青区| 石泉县| 临西县| 呼玛县| 永胜县| 白朗县| 和政县| 洞头县| 鄄城县| 潼南县| 恩施市| 洛扎县| 措美县| 泌阳县| 巴塘县| 兴仁县| 梁山县| 蓬莱市| 杭锦旗| 武威市| 雅安市| 东平县| 玛纳斯县| 会理县| 从化市| 涿鹿县| 宝丰县| 大名县| 淄博市|