我需要将http重定向到https,我正在使用Nginx来做这件事
我使用负载均衡器,使用ACM推荐的certificate.In路由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)
发布于 2018-01-26 21:43:11
根据documentation
如果您只使用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禁止结果。
https://stackoverflow.com/questions/48440619
复制相似问题