首页 > 解决方案 > 如何在aws上使用专用IP运行多个站点?

问题描述

我如何在 aws 实例 ec2 上设置 nginx 以运行 2 个站点,每个站点都有个人 IP?

我创建了 t2.mini 实例并提供了第二个私有 ip,然后我添加了 2 个弹性 ip 并与实例绑定

然后我使用命令将 ip 添加到网络 sudo ip addr add 123.123.123.1/20 dev eth0 (这里我不明白,我需要添加公共或私有 ip,我添加了所有)

site1.com.conf

server {
    server_name site1.com www.site1.com;
    index index.php index.html;
    root /var/www/site1.com;
    location / {
        try_files $uri /index.html =404;
    }
    listen 123.123.123.1:80;
}

在哪里监听域 site1.com 的公共 IP

nginx.conf我保持默认

在路由 53 中,我为每个域创建了两个区域,添加了一条记录,其值为我的实例的 public ip

然后无法访问两个站点

标签: amazon-web-servicesnginxamazon-ec2server

解决方案


您无需手动向服务器添加任何其他 IP 地址,这些将由 AWS 为您管理,包括绑定到服务器以及建立和管理公有 IP 地址到私有 IP 地址的映射表。

关于解决方案,AWS 上的实例不会暴露公共 IP 地址,这会在 Internet 网关层进行转换,以匹配对应的实例私有 IP 地址。

这意味着由于您可能已配置为侦听公共 IP 地址,因此该 IP 地址将永远不会绑定到您的服务器。

而是将您的监听添加为与 ENI 中的公共 IP 地址匹配的实例的私有 IP 地址

一旦它监听私有 IP 地址,Route 53 中的主机名应该可以通过解析连接到公共 IP 地址。

您的实例将有权访问已添加到 ENI 的任何 IP 地址。

AWS 在本文档中发布了有关使用多个 IP 地址的更多信息。


推荐阅读