运行 Debian Buster 的 EC2 实例上的 Nginx 和辅助 IP 地址

运行 Debian Buster 的 EC2 实例上的 Nginx 和辅助 IP 地址

我有一个在 Debian Buster 上运行 Nginx 的 EC2 实例。我使用 AWS Web 控制台向该实例添加了多个私有 IP(以允许 nginx 托管多个网站)。然后我创建了脚本/usr/local/bin/bind_secondary_ips

#!/bin/bash

interface_mac=$(curl -s http://169.254.169.254/latest/meta-data/mac)
interface_ips=$(curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${interface_mac}/local-ipv4s)
ipaddress_arr=($interface_ips)

for i in "${ipaddress_arr[@]:1}"
do             
    ip addr add dev ens5 $i/24
done

为了在启动时运行脚本,我创建并启用了一个名为bind-secondary-ips.service如下的 systemd 服务单元:

[Unit]
Description=Bind secondary IP address to network interface
After=default.target
Before=nginx.service

[Service]
ExecStart=/usr/local/bin/bind-secondary-ips
RemainAfterExit=true

[Install]
WantedBy=default.target

我修改了 nginx 服务单元After指令如下:

After=bind-secondary-ips.service network-online.target remote-fs.target nss-lookup.target

当我重新启动实例时,辅助 IP 正确绑定到网络接口。但是,nginx 仍处于死机状态。实例启动后手动启动 nginx 可以正常工作。

$ systemctl status nginx
  ● nginx.service - nginx - high performance web server
      Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
      Active: inactive (dead)
        Docs: http://nginx.org/en/docs/

我似乎无法弄清楚为什么 nginx 在启动时无法启动。日志也没有显示任何有用的信息。

相关内容