amazon-web-services - 如何在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
然后无法访问两个站点
解决方案
您无需手动向服务器添加任何其他 IP 地址,这些将由 AWS 为您管理,包括绑定到服务器以及建立和管理公有 IP 地址到私有 IP 地址的映射表。
关于解决方案,AWS 上的实例不会暴露公共 IP 地址,这会在 Internet 网关层进行转换,以匹配对应的实例私有 IP 地址。
这意味着由于您可能已配置为侦听公共 IP 地址,因此该 IP 地址将永远不会绑定到您的服务器。
而是将您的监听添加为与 ENI 中的公共 IP 地址匹配的实例的私有 IP 地址。
一旦它监听私有 IP 地址,Route 53 中的主机名应该可以通过解析连接到公共 IP 地址。
您的实例将有权访问已添加到 ENI 的任何 IP 地址。
AWS 在本文档中发布了有关使用多个 IP 地址的更多信息。
推荐阅读
- python - 从文件列和行标题创建嵌套字典
- javascript - 在处理未安装组件的清理时,这些解决方案之间有什么区别?useRef 与布尔变量
- sql - SQL。通过历史性的第一个周来获取用户名收入
- git - 使用core.autocrlf = true时文件的'git hash-object'结果不同?
- ios - Decodebase64 initWithBase64EncodedString 返回 nil
- javascript - Javascript RegExp 在具有嵌套子字符串的字符串上应用跨度标签
- reactjs - PrimeReact 数据表 - 如何在单元格上显示工具提示或标题?
- python - Azure 函数 - Python - Visual Studio 代码
- c# - 如何使用 forEach 循环将项目添加到元组?
- html - 如何在矩形右侧创建新月边界半径?