Задать вопрос
Qwentor
@Qwentor
Веб-программист

Сайт висит при первом заходе на него. Как такое исправить?

Возникла проблема, которую никак не пойму как исправить. Есть сайт на российском VPS. Работало все нормально. В один день с новых браузеров, с которых еще не заходили на этот сайт , он стал виснуть на время более минуты и только потом отображаться (либо вообще не отображаться, а выдавать Empty Response или Connection Closed). После того как один раз зашли работает стабильно с текущего браузера. Не понимаю вообще в чем дело. При этом если я отключаю HTTPS, то грузится нормально. Сайт на Django. Что пробовал: отключение различных js на сайте, замена gunicorn на uWSGI, замена сертификата на другой. Ничего не помогает. Подскажите в чем может быть проблема?
Конфиг Nginx:
server {
    server_name mydomain server_ip;
    

    location = /favicon.ico { 

        access_log off; log_not_found off; 

    }
    
    location /static/ {
        root /opt/myproject/name;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = mydomain) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name mydomain server_ip;
    return 404; # managed by Certbot


}


Еще в логах nginx такое:
2026/05/19 23:53:43 [crit] 69936#69936: *45 SSL_do_handshake() failed (SSL: error:0A00006C:SSL routines::bad key share) while SSL handshaking, client: 34.96.60.148, server: 0.0.0.0:443
  • Вопрос задан
  • 309 просмотров
Подписаться 2 Сложный 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Веб-разработчик Базовый
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Web-разработчик
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
падает на TLS-handshake ещё до Django — до приложения запрос просто не доходит. Chrome 124+ при первом визите пробует post-quantum key share (X25519Kyber768Draft00), твой OpenSSL это не понимает — отсюда bad key share и зависание. Со второго раза браузер уже запоминает что PQ не тянешь и не пробует.

Добавь в server-блок nginx: ssl_ecdh_curve X25519:prime256v1:secp384r1; и nginx -t && systemctl reload nginx
Ответ написан
@rPman
У меня такое было на ростелекоме, с любыми сайтами, хоть nalog.ru, в очень случайное время (примерно раз в 2-3 часа), со случайным сайтом (если долго на него не заходить). Если повторить запрос, то через примерно секунду чинится.

'Починилось' при указании DNS от провайдера (не 8.8.8.8!), точнее глюков стало сильно меньше/реже (это странее всего). Что очень сильно усложняет настройку, если нужен одновременно и vpn и роутинг в российские сети.

У меня есть теория, их вундервафля собирает информацию от провайдерского dns, и переключает работоспособность сайта (скорее всего это глюк их алгоритма), в зависимости от того, когда был запрос к локальному dns
Ответ написан
Комментировать
Qwentor
@Qwentor Автор вопроса
Веб-программист
Яхз, может и костыль, но работает. Тут обратил внимание, что почему-то версия с www нормально грузится. Сделал в nginx редиректы на www.sitename.domain и все пашет. Что это и почему так - не понимаю. Еще на всякий случай пересадил сайт на отдельный ip, а то у меня на сервере и сайт и VLESS с редиректом дальше зарубеж
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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