Lighttpd возвращается из curl, а не из nginx

Lighttpd возвращается из curl, а не из nginx

У меня возникли проблемы с доступом к моим веб-сайтам, размещенным на моем Raspberry Pi в моей домашней сети. До недавнего времени все работало, и я не могу понять, что я сделал, чтобы все сломать :( Если я запускаю curl -I sarahcorballis.comс Pi (т.е. с той же машины, на которой размещен сервер), или откуда-либо еще, я получаю:

HTTP/1.1 301 Moved Permanently
Location: https://sarahcorballis.com/
Date: Fri, 08 Jan 2021 07:45:43 GMT
Server: lighttpd

Однако, если я запущу curl -I localhost(или localhost:80), то с Pi я получу:

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Fri, 08 Jan 2021 07:57:05 GMT
Content-Type: text/html
Content-Length: 3801
Last-Modified: Mon, 22 Apr 2019 18:39:21 GMT
Connection: keep-alive
ETag: "5cbe0a59-ed9"
Accept-Ranges: bytes

Сайт, действительно, размещен на nginx, поэтому я ожидал бы увидеть Server: nginx/1.14.2на всех запросах. Мне интересно, Server: lighttpdэто просто отвлекающий маневр или, если это так, действительно что-то подразумевает?

У меня следующая сетевая настройка: Интернет -> маршрутизатор, предоставленный провайдером -> ASUS RX88U -> Raspberry Pi

На маршрутизаторе интернет-провайдера и маршрутизаторе ASUS установлена ​​переадресация портов 80-80 и 443-443, и в журналах обоих устройств проблем не обнаружено.

До вчерашнего дня даже curl -I localhost выдавал ответ lighttpd, так что я думаю, что это где-то в Raspberry Pi, но я в замешательстве.

Вот вывод ufw status:

ERROR: Couldn't determine iptables version

Вот iptables-saveвывод:

iptables-save/1.8.2 Failed to initialize nft: Protocol not supported

Итак, это еще одно изменение со вчерашнего дня. Итак, что изменилось? Ну, я перешел с stretch на buster.

решение1

Итак, теперь это решено. На случай, если у кого-то будет похожая настройка и он столкнется с той же проблемой в будущем, проблема была в том, что я удалил третий сайт (он мне больше не нужен); однако у этого сайта были сертификаты ssl, которые покрывали все три сайта, и теперь их нет. Хуже того, я не использую Letsencrypt, а вместо этого использую сертификаты происхождения Cloudflare с HSTS для обеспечения более надежной безопасности. Cloudflare вызывал перенаправление, которое затем не работало из-за отсутствия сертификата. Теперь я принял систему с одним сертификатом на сайт (урок извлечен).

Решение:

  1. Создайте новый сертификат — по одному для каждого сайта
  2. Сохраните сертификаты (PEM и ключ) в каталогах на сервере.
  3. Измените блоки сервера в nginx (/etc/nginx/sites-enabled), чтобы они указывали на правильные каталоги и обеспечивали включение http2.
  4. Убедитесь, что в Cloudflare выбрано значение SSL Strict.

Вот блок конфигурации nginx для одного из сайтов:

# configuration file /etc/nginx/sites-enabled/<website>.com:
server {
    listen 80;
    listen [::]:80;

    server_name sarahcorballis.com www.<website>.com;
    return 302 http://$server_name$request_uri;
}
server {

    # SSL Configuration for Cloudflare 

    listen 443 ssl http2; 
    listen [::]:443 ssl http2;
    ssl on;
    ssl_certificate /etc/ssl/certs/<website>.com.pem;
    ssl_certificate_key /etc/ssl/private/<website>.com.key;

    server_name <website>.com www.<website>.com; 

    root /var/www/sarahcorballis.com/;

    index index.html;

    try_files $uri $uri/ /index.html ;


    client_max_body_size 50m;
}

Вам нужно будет изменить его на тот веб-сайт, который у вас есть, и убедиться, что суффикс такой же, как у вас, если вы случайно скопировали блок выше.

Связанный контент