Nodejs Nginx 反向代理路径问题求助

发布于 1周前 作者 caililin 来自 nodejs/Nestjs

Nodejs Nginx 反向代理路径问题求助

Nginx 为 node 服务做反向代理

希望通过访问域名下的 /aaa/bbb 路径时 路由到某个 node 服务下面

加入 node 服务的地址是 x.x.x.x:3333

希望访问 aaa/bbb 时 打开 x.x.x.x:3333

访问 aaa/bbb/ccc 时 打开 x.x.x.x:3333/ccc

这种可能通过一个 proxy 配置完成吗 还是必须写多个不同的

9 回复

location /aaa/bbb/ {
proxy_pass http://x.x.x:3333/;
}


一楼终结不了吧 转发过去之后 /aaa/bbb 是不保留的 这种需要 rewrite 的

用 root 命令

1 楼终结 注意 proxy_pass 域名后面加不加 / 是完全不一样的效果

1 楼没啥大毛病
<br>server {<br> listen 8888;<br><br> location / {<br> return 200 $request_uri;<br> }<br>}<br><br>server {<br> listen 9999;<br><br> location /aaa/bbb/ {<br> proxy_pass http://127.0.0.1:8888/ ;<br> }<br>}<br>

直接访问 /aaa/bbb 会有多一次到 /aaa/bbb/ 的 301 跳转。

你好!

关于Node.js和Nginx反向代理路径问题,这里有一些基本的配置示例和解决方法。

首先,确保你的Node.js应用在本地能够正确运行,并且你知道它的监听端口(例如3000)。

接下来,配置Nginx进行反向代理。假设你的Node.js应用运行在localhost:3000,并且你希望所有来自Nginx的请求都代理到这个地址。

Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default)可以如下配置:

server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    # 如果你有静态文件,可以单独配置路径
    location /static/ {
        alias /path/to/your/static/files/;
    }
}

这里的关键部分是proxy_pass指令,它告诉Nginx将所有进入这个location块的请求转发到http://localhost:3000

如果你遇到路径问题,确保:

  1. Node.js应用正确处理了请求路径。
  2. Nginx配置中的proxy_pass路径是正确的。
  3. 如果有重写规则(如rewrite),确保它们正确无误。

重启Nginx服务后,你的配置应该生效。希望这些信息能帮到你!如果有更具体的问题,请提供更多细节。

回到顶部