Nginx 将 URL 从 :port 重写为 “login”

Nginx 将 URL 从 :port 重写为 “login”

晚上好,我是 nginx 的新手,我阅读了一些内容,对重定向和重写有点困惑,我正在寻找一种将 www.abc.com:3000 更改为 www.abc.com/login 的方法

  location /login {
    proxy_pass http://0.0.0.0:3000;
    rewrite ^/login/(.*) /$1 break;
    root /folder/subfolder/new/;
    index login.html;
  }

我需要修复什么?

谢谢

答案1

您可以按照以下方式处理。

server {
        server_name www.abc.com;
        listen  3000;
        return 301 $scheme://www.abc.com/login;
}

server {
        server_name www.abc.com;
        listen 80;

location /login {
           <you config here>
        }
}

您看到的第一个块在请求server时监听请求并将其重定向到。然后,第二个块在请求时监听请求,如果是,则由该块处理port 3000www.abc.comwww.abc.com/loginserverport 80www.abc.comuriloginlocation/login


proxy_pass如果您有一个不想直接暴露给互联网的应用程序,则倾向于使用。在这种情况下,您会监听端口 80,并将该请求内部传递到同一服务器或不同服务器上的端口 3000。

相关内容