Linux 系统 nginx 服务器安装及负载均衡配置详解

2019-10-17 16:38:45刘景俊

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