我有一个在example.com上运行的应用程序,现在我想将所有流量重定向到www.example.com,因为我们正在为您的网站与Akamai的CDN合作。我的域名驻留在Route53中,添加了弹性负载均衡器的CNAME指向*.example.com,我正在运行如下配置的nginx web服务器。如果我使用这个配置,ELB会抛出实例,现在domain.com和www.domain.com都工作得很好,但是重定向没有发生。
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论坛上发布了帖子和帖子,没有任何东西是有帮助的。
发布于 2013-04-07 00:17:25
我不熟悉Amazon ELB,但也许我可以在nginx部分提供帮助。
对于您的场景,我通常在nginx中使用两个服务器块。一个用于处理重写/重定向(example.com),另一个用于处理常规站点(www.example.com)。这两个块可以在同一个文件中。
# 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;
...
}
发布于 2019-04-23 03:32:17
这是个老问题,但它在搜索中出现了。
现在可以使用AWS应用程序负载均衡器重定向到www (或任何其他主机)。这可能比使用nginx config更便于管理。
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html
https://stackoverflow.com/questions/15847888
复制相似问题