繁体   English   中英

在AWS Load Balancer之后使用Nginx将http重定向到https

[英]Redirecting http to https using nginx behind AWS load balancer

我已经搜寻了很多东西,我觉得这是我项目的最后障碍。 我正在尝试将所有http通信重定向到https。

当前,当键入domain.info时,它将重定向到https://domain.info:80并返回ERR_SSL_PROTOCOL_ERROR

但是用443代替80可以使我的网页正常运行。

我的服务器也位于负载均衡器的后面,我的证书在LB中,服务器中没有。 我正在使用NGINX作为我的网络服务器。 基本上这是我的设置:

用户> https>负载均衡器> http>服务器

提前非常感谢!

  1. 首先,捕获所有传入的HTTP:
server {
   listen 80 default_server;
   server_name _;
   return ....;
}
  1. 然后永久重定向到HTTPS
server {
   listen 80 default_server;
   server_name _;
   return 301 https://$host$request_uri;
}

要么...

server {
    listen 443 ssl default_server;
    server_name foo.com;
}

server {
    listen 443 ssl default_server;
    server_name foo.com;
}

直接在负载均衡器中,您可以添加重定向规则,您是否尝试过使用它?

在负载平衡器侦听器中,更新HTTP:80的默认规则,并按如下所示进行配置:

HTTP 80: default action
IF
Requests otherwise not routed
THEN
Redirect to https://#{host}:443/#{path}?#{query}
Status code:HTTP_301

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM