nginx: redirect http to https fail when first access

У меня странная проблема с перенаправлением на HTTPS на NGINX

  • Когда пользователь впервые посещает http, появляется сообщение ERR_FAIL_CONNECTION.
  • Когда пользователь посещает https, все работает.
  • Затем пользователь закрывает браузер, снова запускает браузер и переходит на. http, редирект работает!!!

Это в моем конфиге nginx для порта 80

server{
      listen 80 default_server;
      listen [::]:80 default_sever;
       server_name mydomain;
       location /{
       return 301 https://$host$request_uri;
      }
}

Я проверил, что сервер слушает оба порта 80 и 443 и брандмауэр неактивен. И curl работает как для http, так и для https.

Результат nmap также показывает, что порты 80 и 443 открыты:

 PORT     STATE SERVICE
 80/tcp   open  http
 443/tcp  open  https

Вот моя информация о curl для http:

* Connected to mydomain (my.IP.num.ber) port 80 (#0)
> GET / HTTP/1.1
> Host: mydomain
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.10.3 (Ubuntu)
< Date: Thu, 05 Apr 2018 07:39:46 GMT
< Content-Type: text/html
< Content-Length: 194
< Connection: keep-alive
< Location: https://mydomain/
<
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
* Connection #0 to host mydomain left intact

Таким образом, только в "первый раз", когда пользователь заходит на сайт по http, перенаправление не работает. Есть идеи, как это решить?

0
задан 5 April 2018 в 10:55
1 ответ

Это может быть связано с браузером, потому что во второй раз он работает. Когда я перенаправляю http на https, я всегда стараюсь быть как можно более кратким

server{
   server_name mydomain;
   return 301 https://$host$request_uri;
}
0
ответ дан 5 December 2019 в 06:20

Теги

Похожие вопросы