尝试让 Nginx 重定向在 Pod 中工作

尝试让 Nginx 重定向在 Pod 中工作

因此,我尝试做一个非常基本的 Nginx 重定向https://strnordicfin.eu/magnesium-faktahttps://strnordicse.eu/ntr/some/magnesium/(仅训练领域,不用担心)。

我的 nginx 配置如下,

worker_processes  1;
events { worker_connections  1024;
}
http {
server {
listen 80;
location https://strnordicfin.eu/magnesium-fakta {
rewrite   https://strnordicfin.eu/magnesium-fakta https://strnordicse.eu/ntr/some/magnesium/$request_uri  permanent;
}
}
}
  • 但这一切只会给 pod 和 nginx 404 页面带来错误,
[error] 19#19: *1 open() "/etc/nginx/html/magnesium-fakta" failed (2: No such file or directory), client: 10.244.10.130, server: , request: "GET /magnesium-fakta HTTP/1.1", host: "strnordicfin.eu"

我看到 nginx 正在尝试从 pods /etc/nginx/html/magnesium-fakta 打开,这是一个空目录,它应该从中获取信息https://strnordicse.eu/ntr/some/magnesium/

从网上搜索会给出很多答案,但这些答案中,服务器主要位于现场,而不是在吊舱中。

编辑:做了一些调整,nginx-config 现在是 -

http {
server {
listen 80;
root /;
location https://strnordicfin.eu/magnesium-fakta/ {
return 302 https://strnordicse.eu/ntr/some/magnesium/magnesium-fakta/$request_uri;
}
}

错误信息更改为 -

[error] 20#20: *2 "/magnesium-fakta/index.html" is not found (2: No such file or directory), client: 10.244.8.172, server:

但仍然没有重定向。

答案1

我在这里看到两个问题:

  1. 您的文档根目录root <path>设置不正确。您应该将其设置为包含 Web 文件的文件夹。例如,如果您在/var/www/html构建 docker 镜像时复制文件,则应将其设置为root /var/www/html
  2. 您的位置块包含一个 URL,而它应该包含匹配模式,就像您在找到匹配模式时想要实现的目标一样。

因此,根据您的问题,您的最终配置应该是这样的:

http {
  server {
  listen 80
  root /var/www/html;
  
  location ~* /magnesium-fakta {
    return 302 https://strnordicse.eu/ntr/some/magnesium/magnesium-fakta/$request_uri;
    }
  } 
}

相关内容