相关疑难解决方法(0)

nginx 响应“301 永久移动”

考虑以下 nginx 配置文件:

server {
    listen 443;
    ssl    on;
    ssl_certificate     /etc/tls/cert.pem;
    ssl_certificate_key /etc/tls/key.pem;
    location / {
        proxy_pass http://api.default.svc.cluster.local;
    }
}
Run Code Online (Sandbox Code Playgroud)

443 上的所有传入 TCP 请求都应重定向到我运行的服务器api.default.svc.cluster.local:80(顺便说一句,这是一个 REST-Api 节点)。这工作正常,我可以curl https://<nginx-IP>/nginx 并获得正确的响应,如预期的那样。

现在,我想将位置从 更改为//api这样我就可以触发 acurl https://<nginx-IP>/api以获得与以前相同的响应。

1. 尝试

所以我将配置中的位置行更改为:

location /api {

不幸的是,这不起作用,相反,我收到一个错误Cannot GET /api,这是一个节点错误,所以显然它被路由到 api,但有些东西仍然很臭。

2. 尝试

URI 中的尾部斜杠似乎是必需的,因此我将其添加到该位置:

location /api/ {

现在有些事情发生了变化。我不会得到与以前相同的错误,而是得到“301 永久移动”。如何修复我的 nginx 配置文件?

有关环境的附加信息

我正在使用 kubernetes 部署来部署 nginx 反向代理(包括)。引入的配置。然后我使用 kubernetes 服务公开 nginx。另外,我尝试使用 kubernetes ingress 来处理这种情况,使用相同的路由,但是,ingress 服务会响应一条default backend …

nginx node.js kubernetes

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

kubernetes ×1

nginx ×1

node.js ×1