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 forever3: 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 配置文件,示例如下:
新聞熱點
疑難解答