У меня странная проблема с перенаправлением на 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, перенаправление не работает. Есть идеи, как это решить?
Это может быть связано с браузером, потому что во второй раз он работает. Когда я перенаправляю http на https, я всегда стараюсь быть как можно более кратким
server{
server_name mydomain;
return 301 https://$host$request_uri;
}