nginx가 아닌 컬에서 반환되는 Lighttpd

nginx가 아닌 컬에서 반환되는 Lighttpd

홈 네트워크의 Raspberry Pi에 호스팅된 웹사이트에 접속하는 데 문제가 있었습니다. 최근까지 모든 것이 작동했으며 문제를 해결하기 위해 무엇을 했는지 알 수 없습니다. curl -I sarahcorballis.comPi에서(예: 서버가 호스팅되는 동일한 컴퓨터에서) 또는 다른 곳에서 실행하면 다음과 같은 결과가 나타납니다.

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

Server: nginx/1.14.2이 사이트는 실제로 nginx에서 호스팅되므로 모든 요청에서 볼 수 있을 것으로 예상됩니다 . Server: lighttpd그냥 붉은 청어인지, 아니면 실제로 뭔가를 암시하는지 궁금합니다 .

내가 가지고 있는 네트워크 설정은 인터넷 -> ISP 제공 라우터 -> ASUS RX88U -> Raspberry Pi입니다.

ISP 라우터와 ASUS 라우터 모두 포트 전달 80-80 및 443-443을 갖고 있으며 둘 다의 로그에는 문제가 없습니다.

어제까지는 심지어 컬 -I 로컬호스트가 lighttpd 응답을 던졌기 때문에 라즈베리 파이 어딘가에 있는 것 같지만 당황스럽습니다.

출력은 다음과 같습니다 ufw status.

ERROR: Couldn't determine iptables version

출력 은 다음과 같습니다 iptables-save.

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

그럼 어제와 또 다른 변화가 생겼네요. 그렇다면 무엇이 바뀌었나요? 글쎄, 나는 스트레치에서 버스터로 업그레이드했습니다.

답변1

이제 이 문제가 해결되었습니다. 누군가 유사한 설정을 갖고 있고 나중에 동일한 문제가 발생하는 경우 문제는 제가 세 번째 사이트를 삭제했다는 것입니다(더 이상 필요하지 않음). 그러나 해당 사이트에는 세 사이트를 모두 포괄하는 SSL 인증서가 있었고 지금은 사라졌습니다. 더 나쁜 것은 Letsencrypt를 사용하지 않고 대신 보다 강력한 보안을 보장하기 위해 HSTS와 함께 Cloudflare 원본 인증서를 사용하고 있다는 것입니다. Cloudflare가 리디렉션을 유발했는데 인증서가 없어 실패했습니다. 나는 이제 사이트당 하나의 인증서 시스템을 채택했습니다(거기서 얻은 교훈).

해결책:

  1. 새 인증서 생성 - 각 사이트마다 하나씩
  2. 서버의 디렉터리에 인증서(pem 및 키 모두)를 저장합니다.
  3. 올바른 디렉터리를 가리키도록 nginx(/etc/nginx/sites-enabled)의 서버 블록을 수정하고 http2가 활성화되어 있는지 확인하세요.
  4. Cloudflare에서 SSL 엄격이 선택되어 있는지 확인하세요.

다음은 사이트 중 하나에 대한 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;
}

위의 블록을 복사한 경우 웹사이트를 변경하고 접미사가 귀하의 웹사이트와 동일한지 확인해야 합니다.

관련 정보