首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AWS弹性负载均衡器和Nginx不能访问www

使用AWS弹性负载均衡器和Nginx不能访问www
EN

Stack Overflow用户
提问于 2013-04-06 14:35:48
回答 2查看 3.4K关注 0票数 4

我有一个在example.com上运行的应用程序,现在我想将所有流量重定向到www.example.com,因为我们正在为您的网站与Akamai的CDN合作。我的域名驻留在Route53中,添加了弹性负载均衡器的CNAME指向*.example.com,我正在运行如下配置的nginx web服务器。如果我使用这个配置,ELB会抛出实例,现在domain.com和www.domain.com都工作得很好,但是重定向没有发生。

代码语言:javascript
复制
server {
        listen 80;
        server_name example.com;
#       rewrite ^    http://www.example.com$request_uri? permanent;
        root /home/ubuntu/apps/st/public;
        passenger_enabled on;
}

但我无法实现重定向。

我还尝试添加PTR,它的值是负载均衡器的cname。

尝试更改nginx配置,如您所见

rewrite ^ http://www.example.com$request_uri? permanent

即使这样也行不通。

只要我添加了上面这行代码,应用程序实例就会被删除,ELB就会抛出堆栈。

解决方案是什么,我已经尝试了3-4天,现在它变成了一匹噩梦,请帮帮我。我还在aws论坛上发布了帖子和帖子,没有任何东西是有帮助的。

EN

回答 2

Stack Overflow用户

发布于 2013-04-07 00:17:25

我不熟悉Amazon ELB,但也许我可以在nginx部分提供帮助。

对于您的场景,我通常在nginx中使用两个服务器块。一个用于处理重写/重定向(example.com),另一个用于处理常规站点(www.example.com)。这两个块可以在同一个文件中。

代码语言:javascript
复制
# for redirecting only...
server {
    listen 80;
    server_name example.com;

    # re-written to www...
    location / {
       rewrite ^(.*)$ $scheme://www.example.com$1 permanent;
    }
}

# regular web site config here...
server {
    listen 80;
    server_name www.example.com;

    root /home/ubuntu/apps/st/public;
    passenger_enabled on;
    ...
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-23 03:32:17

这是个老问题,但它在搜索中出现了。

现在可以使用AWS应用程序负载均衡器重定向到www (或任何其他主机)。这可能比使用nginx config更便于管理。

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15847888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档