Nginx 行为异常

Nginx behaving in a strange way

我很难让 nginx 在我的 Ubuntu 18.04 服务器上工作。

以下是我目前的配置,其他没有启用。 include/example.ssl.conf 包含配置 SSL 的一些常用设置。

server {
  listen 80;
  listen [::]:80;
  server_name test.example.com;

  root /var/www/html;
  index index.html index.nginx-debian.html;

  location / {
    try_files $uri $uri/ =404;
  }
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name code.example.com;

  include include/example.ssl.conf;

  location / {
    proxy_pass http://localhost:8443;
    proxy_set_header Upgrade    $http_upgrade;
    proxy_set_header Connection upgrade;
  }
}

出于某种原因,当我点击 http://test.example.com 时,我没有收到任何响应,浏览器在一段时间后超时。如果我点击 https://code.example.com 它会工作,我会被重定向到我的 code-server 的登录页面。奇怪的是,任何 https 子域都被代理到我的 code-server 端口 8443,我不明白为什么会这样。干杯!

您服务器的 80 端口似乎无法访问。由于代码服务器在端口 443 (https) 侦听,它总是会回复 任何 通过 https 发出的请求(前提是您的 DNS 将所有域重定向到您的服务器,这意味着您的域有一些通配符记录,例如 *.example.com 配置),这解释了您的 "strange" 行为。

您应该检查您的防火墙配置以确保您可以从端口 80(默认的 HTTP 端口)访问您的服务器。这应该使服务器从该端口工作并重定向到您的静态内容,静态内容也应该在那里(在 /var/www/html 处放置一个 index.html)。

其余的,目前我还没有看到任何其他问题,所以它必须是端口 80 无法访问或缺少内容。