【问题标题】:From port 80 to 8000 on AWS EC2 and Load Balancer从 AWS EC2 和负载均衡器上的端口 80 到 8000
【发布时间】:2019-09-21 15:08:49
【问题描述】:

我有 AWS EC2 实例运行,负载均衡器 (LB) 监听端口 443:

LB 转发到名为wordpress-80 的目标组:

当我输入我的域https://my-domain.com/ 时,我可以看到默认的nginx 页面:

但是我不想暴露8000端口上运行的东西,所以urlhttps://my-domain.com/直接打开8000端口。我应该如何配置nginx?我试过this answer,但没用。

【问题讨论】:

  • 为什么链接答案中的解决方案不起作用?您需要做的就是将 nginx 配置为将端口 80 代理到 localhost 上的端口 8000。您应该能够通过您链接的答案来做到这一点,只需将该答案中的8080 更改为8000。当您尝试这样做时,您是否遇到错误或其他问题?
  • @MarkB 链接解决方案导致Safari 无法打开页面
  • 你有没有采取任何措施来调试它?您是否查看了 nginx 日志以查看它是否从在端口 8000 上运行的服务器获得了错误的响应?你真的有东西在端口8000 上运行吗?当您通过 SSH 连接到 EC2 实例并运行 curl http://localhost:8000 时会发生什么?
  • 为什么需要 nginx?如果您使用负载均衡器?使用主机基础路由并删除 nginx 并将流量传递到目标端口8000 当它接收到 LB 时。你不需要在你的 nginx 上管理任何东西 LB 将负责路由。使用 nginx 配置解决问题的每一件事。
  • 显示您的 Nginx 配置以及如何生成证书?证书无效,要么是针对错误的 DNS 生成的,要么是您使用了错误的配置。 SSL 应该终止 LB 级别,并且实例将接收解密流量。

标签: amazon-web-services nginx amazon-ec2 proxy aws-load-balancer


【解决方案1】:

可以让nginx监听80,代理到8000 像这样:

server {
    listen      [::]::80;
    ...
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-04
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多