nginx не обслуживает сайт по сотовой связи

У меня есть веб-сервер под управлением Nginx. Если я захожу на сайт через соединение Wi-Fi, он загружает сайт. Если я получаю к нему доступ с помощью LTE на своем телефоне, он просто показывает значение по умолчанию "Welcome to nginx!" страница

Вот файл конфигурации моего сайта:

server {
    listen 80;
    listen 443 ssl;
    server_name {mysite.com};

    root   /path/to/public;
    index  index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
        include   /etc/nginx/conf.d/php-fpm;
    }

    ssl_certificate /etc/letsencrypt/live/{mysite.com}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/{mysite.com}/privkey.pem;
}

1 ответ

Решение

Это "Добро пожаловать" заставляет меня подозревать, что nginx не читает Host заголовок в запросе, а ответ - это определение виртуального хоста по умолчанию (которое является приветственным сообщением).

Удалите ваш vhost по умолчанию, на Debian должно быть:

rm /etc/nginx/sites-enabled/default

Затем добавьте default_server на ваш сайт vhost определение:

listen 80 default_server;
listen 443 ssl default_server;

Обновить: nginx -s reload

Тест с завитком:

curl -H "Host: mysite.com" mysite.com
curl mysite.com

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

Это похоже на метод грубой силы, более разумным способом будет отладка запросов, если все правильно настроено, этого не должно происходить.

Другие вопросы по тегам