amazon-web-services - 如何配置 AWS ELB 来代替 NGiNX 服务器及其设置?
问题描述
我想知道,我们如何才能完全迁移NGiNX
到AWS ELB
包括SSL
(AWS 证书)?
我的域之一具有以下NGiNX
配置(例如,example.com
)
server {
listen 80;
server_name *.example.com;
root /home/ubuntu/angularApp;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}
server {
listen 80;
server_name example.com;
root /home/ubuntu/website;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location ~ ^/api/(v1|v2)/ {
proxy_pass http://backend_service$request_uri;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Google-Real-IP $remote_addr;
}
}
我主要有2个查询,
Query#1 :-如果请求的 URL 包含/属于,
如何配置设置(in ELB
),否则请参考其他目录的 index.html 文件而不是 Angular-App。Angular-App pages
subdomain
查询#2 :-
如果ELB
传入EC2
请求URI
包含/api/v1/
或/api/v2/
注意 - 我已经批准了我们可以在 ELB 中配置的 AWS SSL 证书。所以关于 SSL 证书不会有任何问题。目前我使用的不是配置到 NGiNX 中的 AWS 的 SSL 证书,但我计划使用 AWS ACM,因为所有其他东西都属于 AWS。
任何帮助都会非常明显!
解决方案
您需要执行以下操作:
- 确保 LB 可以访问机器。在这里,您需要保留当前的公共子网与私有子网、安全组等。
- 进入创建负载均衡器界面。选择所需的负载均衡器类型。对于 Web 应用程序,当前推荐的方法是 ALB(三个选项中的第一个)。. 您也可以使用 Clasic LB。
- 然后配置LB的基础,名称,80和443上的监听器,VPC和正确的子网。
- 接下来,您可以选择现有证书或放置新证书。如果您有多个域,这里值得一提的是,您需要一个对您要使用的所有域都有效的证书。为此,您可以获得通配符证书等。
- 接下来是选择安全组(SG 从现在开始)。您需要确保您选择的 SG 允许通过 http 和 https 进行连接。
- 然后确保指向正确的目标群体。. 在这里,请继续介绍 ALB 的优点之一是您可以为不同的子域设置不同的目标组等。这是其他类型的经典 LB 的一个非常重要的优势。在您的情况下,如果您没有多个子域,那么您只需将其全部传递到 TCP 端口上的同一台机器上,可能只是 80,nginx 或其他服务器将在那里侦听并决定如何处理不同的请求。说
/api/v1/
或/api/v2/
可以去不同的后端。在这里,当您配置时,您可以选择目标后端的 IP,如果您愿意,而不是选择实例(这是默认设置)。 - 然后在下一步中选择目标实例或 IP。例如,如果您选择实例,您应该能够看到所需的一个或多个实例。
- 现在你应该完成了。转到审查步骤,检查一切是否良好并创建您的 LB。
- 接下来是检查某个时间后(一分钟左右)后端是否应该显示为健康的。
我希望这在一定程度上回答了你的问题。官方文档在这里以获取更多信息或随时进一步询问。
推荐阅读
- angular - Angular 服务注入设计模式与两个密切相关的服务
- postgresql - 在 postgresql 的查询结果中返回不同的列
- r - 按月对 xts 进行分组
- oauth2-playground - 请求访问令牌时获取 HTTP 400
- django - 从django中的父类实例中查找子类中的对象
- python - python:如果文件在每一行中都包含相同的字符串,则 line.startswith(str) 将不起作用
- docker - 使用主机上的 nginx 反向代理在 docker 中部署 nextjs 应用程序
- html - 禁用 Dailymotion 共享选项
- confluent-platform - 如何查找当前哪个 Schema Registry pod/node 是主节点
- javascript - ReactJS 15.6.2 版:目标容器不是 DOM 元素