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 路由器和 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

所以,这是与昨天相比的另一个变化。那么,有什么变化呢?好吧,我已经从拉伸升级到破坏者了。

答案1

所以,现在这个问题已经解决了。如果有人有类似的设置,并且将来遇到同样的问题,那么问题就是我删除了第三个网站(不再需要它);但是,该网站有覆盖所有三个网站的 SSL 证书,现在这些证书已经不存在了。更糟糕的是,我没有使用 Letsencrypt,而是使用带有 HSTS 的 Cloudflare 原始证书来确保更强大的安全性。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;
}

如果您碰巧复制了上述块,则需要更改为您拥有的网站并确保后缀与您的网站相同。

相关内容