nginx Hugo 301 重定向问题

nginx Hugo 301 重定向问题

我正在使用一个非特权的 nginx 容器,它在端口 8080 上运行,我用它来提供一个 Hugo 网站,一切正常,除了当你点击一个标签时,它会将你发送到 /tags/mytag/ ,我一直得到一个 301 重定向,因为容器内的 nginx 在端口 8080 上运行,而我的网站在 443 上,我得到一个错误,因为 nginx 返回带有端口的网站,即 https://mysite:8080/tags/mytag。现在我找到了这个链接nginx 文档

问题是我该如何使用它来解决我的问题,我一直搞不清楚,但一直找不到正确的答案,我做了类似的事情

location /tags/ {
  proxy_pass http://localhost:5000/tags;
}

location = /tags {
  proxy_pass http://localhost:5000/tags/;
}

当然,两种方法都行不通。我在这方面有点力不从心,任何帮助我都会很感激。

经过深入研究后,我认为我找到了一个解决方案,它可以在 docker 中运行容器,现在我需要测试它是否可以在 k8s 中工作,因为我在所有东西前面都有一个入口控制器:

server {
    listen       5000;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /tags {
      alias /usr/share/nginx/html/tags;
    if (-d $request_filename) {
        rewrite [^/]$ $scheme://$http_host$uri/ permanent;
       }
    }

    #error_page  404              /404.html;

    error_page   404             /404.html;
    location = /404.html {
        root  /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

我找到了答案这里

答案1

返回带有端口的站点的不是 nginx。返回重定向的是你的应用程序。

您需要修复应用程序配置,以便其根 URL 正确设置为https://example.com

相关内容