我需要将http重定向到https,我正在使用Nginx来执行此操作
我使用负载均衡器和ACM推荐的证书。路由53使用Ipv4
尝试将http从/ etc / nginx / sites-available / default中的代码重定向到https
server {
listen 80;
server_name mysite.com www.mysite.com;
location / {
if ($http_x_forwarded_proto != 'https') {
rewrite ^ https://$host$request_uri? permanent;
}
proxy_pass http://172.x1.x5.xx6:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
我面临的问题是公共ipv4(公共IP)也被重定向到https而无法访问我的域
如何不重定向ipv4(公共IP)
答案 0 :(得分:0)
如果您只使用server_name
指令
如果其值与任何服务器名称不匹配,或者请求不匹配 根本包含此标头字段,然后nginx将请求路由到 此端口的默认服务器。在上面的配置中, 默认服务器是第一个 - 这是nginx的标准默认值 行为。它也可以明确地设置应该是哪个服务器 默认情况下,使用listen指令中的default_server参数...
所以,如果你有这样的事情:
server {
listen 80 default_server;
return 403;
}
server {
listen 443 default_server;
return 403;
}
然后,当一个请求进入并且与您的server_name
不符时,它将默认为上述server
块并返回403
禁止的结果。