Почему при попытке открыть сайт по протоколу HTTP на мобильном устройстве появляется ошибка net::ERR_CONNECTION_REFUSED?

Я создал сайт, используя Nginx, и развернул его в Docker на VPS от webhost1. Я подключил шифрование SSL, и вот адрес моего сайта: <b><a href="http://salkus.ru" rel="nofollow">salkus.ru</a></b> <br/> Когда я открываю сайт по HTTP с ПК или через Chrome на смартфоне, все работает корректно (происходит редирект на HTTPS, как указано в nginx.conf). <br/> Однако, если я пытаюсь открыть сайт на смартфоне с другими браузерами, встроенными или через Яндекс, или пересылаю ссылку в Telegram и открываю через приложение, возникает ошибка: <br/> net::ERR_CONNECTION_REFUSED. <br/> <br/> Можете подсказать, в чем может быть проблема? <br/> Прилагаю содержимое nginx.conf: <br/> <br/> <pre><code class="yaml">user root;

events {
  worker_connections 1024;
}

http {
  server {
    listen 80;
    server_name salkus.ru www.salkus.ru;

    # Перенаправление HTTP на HTTPS
    return 301 https://salkus.ru$request_uri;
}

  server {
    listen 443 ssl; # managed by Certbot
    client_max_body_size 10M;
    server_name salkus.ru www.salkus.ru;
    ssl_certificate /etc/letsencrypt/live/salkus.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/salkus.ru/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

    if ($host ~* ^www\.(.*)$) {
      return 301  https://salkus.ru$request_uri;
    }

    location / {
      proxy_pass http://frontend:3000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /api/ {
      proxy_pass https://bac...
  • 6 февраля 2025 г. 8:04
Ответы на вопрос 2
Ошибка `net::ERR_CONNECTION_REFUSED` может возникать по нескольким причинам, особенно когда речь идет о мобильных устройствах и различных браузерах. Поскольку на ПК и в некоторых браузерах вы можете видеть редирект, это указывает на то, что ваша конфигурация Nginx в целом работает корректно, но есть некоторые потенциальные проблемы, которые можно проверить:

1. **Проблемы с DNS:** Убедитесь, что DNS-записи вашего домена корректны и что они распространяются правильно. Иногда, если вы только что обновили DNS, изменения могут не полностью распространиться, и некоторые устройства могут использовать старые записи.

2. **Кэш браузера:** На мобильных устройствах браузеры могут использовать кэшированные версии сайтов. Попробуйте очистить кэш браузера или открыть сайт в режиме анонимного просмотра.

3. **Различия в настройках браузеров:** Некоторые мобильные браузеры могут обрабатывать редиректы или соединения по-разному. Например, встроенные браузеры могут более строго реагировать на отсутствующие или неправильно настроенные сертификаты SSL.

4. **Сетевые ограничения:** Убедитесь, что не используются прокси или VPN, которые могли бы блокировать соединение. Иногда мобильные операторы могут блокировать определенные порты или типы трафика.

5. **Логи Nginx:** Проверьте логи ошибок Nginx (обычно в `/var/log/nginx/error.log`). Это может дать подсказку о том, что происходит, когда мобильное устройство пытается подключиться к вашему серверу.

6. **Проблемы с конфигурацией:** Проверьте настройки вашего Docker контейнера и сетевые настройки, чтобы убедиться, что они правильно настроены для обработки внешних запросов. Убедитесь, что порты 80 и 443 открыты и направлены на ваш Nginx.

7. **Сертификат SSL:** Если сертификат SSL неправильно настроен или истек, некоторые браузеры могут выдавать ошибку. Попробуйте проверить ваш сертификат с помощью онлайн-инструментов, таких как [SSL Labs](https://www.ssllabs.com/ssltest/).

8. **Мобильные сети и прокси:** Убедитесь, что сеть, к которой подключено ваше мобильное устройство, не имеет настроек, мешающих соединению (например, блокировка определенных портов или протоколов).

Если ни одно из вышеперечисленного не решает проблему, напишите более подробно о том, как именно происходят ваши попытки доступа (например, какие сообщения об ошибках вы видите на мобильных устройствах). Это может помочь более точно диагностировать проблему.
Открой 80, некоторые браузеры умеют или настроены сами менять соединение с 80 на 443, а некоторые нет, и им для соединения надо сначало подсоединиться по 80, а потом сервер им даст редирект.
Похожие вопросы