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這是否只是一個轉移注意力的事情,或者如果確實如此,確實意味著什麼?

我的網路設定是 Internet -> ISP 提供的路由器 -> ASUS RX88U -> Raspberry Pi

ISP 路由器和華碩路由器都有連接埠轉送 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

所以,這是與昨天相比的另一個變化。那麼,發生了什麼變化呢?嗯,我已經從拉伸升級到破壞了。

答案1

所以,現在這個問題已經解決了。如果有人有類似的設定並在將來遇到相同的問題,問題是我刪除了第三個網站(不再需要它);然而,該網站擁有覆蓋所有三個網站的 ssl 證書,但現在已經消失了。更糟的是,我沒有使用 Letsencrypt,而是將 Cloudflare 原始憑證與 HSTS 結合使用,以確保更強大的安全性。 Cloudflare 導致重新導向,但由於沒有憑證而失敗。我現在採用了每個站點一個證書的系統(從中吸取了教訓)。

解決方案:

  1. 產生新憑證 - 每個網站一個
  2. 將憑證(pem 和 key)儲存到伺服器上的目錄中
  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;
}

如果您碰巧複製了上面的區塊,則需要更改為您擁有的網站,並確保後綴與您的相同。

相關內容