Nginx 位置代理通行证不起作用

Nginx 位置代理通行证不起作用

我有一个带有 nginx + puma 的 rails 应用程序

我将这些位置添加到我的 nginx 站点配置中:

  location = /helloworld.html {
    ssi on;
    proxy_set_header Accept-Encoding "";
    proxy_pass https://liveblog.dday.it/api/upload-raw/blogs/5c20ff839a954a50bec0a4b9/index.html;
  }

  location = /helloworld2.html {
    root html;
  }

我不明白为什么最后一个有效,第一个重定向到我的rails应用程序。

编辑

我了解这个问题,问题是我的主要域名是 dday.it

server {
  listen 80;
  listen [::]:80;
  server_name dday.it www.dday.it;
  return 301 https://www.dday.it$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name dday.it;
    return 301 https://www.$server_name$request_uri;
}


server {
  listen 443 ssl http2 default_server;
  listen [::]:443 ssl http2 default_server;
  ssl on;
  ssl_certificate /etc/letsencrypt/live/dday.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/dday.it/privkey.pem;
  server_name www.dday.it;
  root /var/apps/dday.it/current/public;
  try_files $uri/index.html $uri @puma_dday.it;
}

如果我通过代理传递到其他域,例如 example.com,则一切正常。如果我通过代理传递到 liveblog.dday.it,则会发生“循环”。

答案1

第一个位置将请求重定向到新链接,第二个位置表示对 yoursite/helloworld2.html 的请求在本地路径 html 中查找。

如果你尝试这样做:

location = /helloworld2.html {
  root /var/www/html;
  index index.html
}

并将此 index.html 放入路径中

<!DOCTYPE HTM>
<html>
  <head>
    <title>I'm Hello World 2</title>
  </head>
<body>
  <center><h1>Hello World 2</h1></center>
</body>
</html>

这将向您显示 index.html 的内容

相关内容