nginx 请求代理设置

location / {
    root /www;
    index page/index.html;
}

这是设置的查找静态资源地址,网站的根页面

现在请求地址都是

servername/xxx/yyy
servername/aaa/bbb
servername/ccc/ddd
servername/eee/fff

因为服务器上面用 node 开的一个服务,端口是 3000

现在请求地址都是这样的servername:3000/xxx/yyy

我想把这个 3000 去掉

nginx 怎么设置,因为请求也都是基于根地址servername/

因为上面已经设置过一个了,所以需要在怎么设置能匹配到我的请求呢?

阅读 3.7k
4 个回答

我是这么配置的,用的是tomcat把8080改成3000就可以了

server {
    listen 80;
    #listen 443 ssl;
    server_name  xxx.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

楼上+1,使用反向代理即可

赞同 TMaize 的答案,我也是这样配置的

你现在的情况,浏览器出的请求是 servename:3000 ,还是 servername ?
现在请求都是带3000端口的,目的是把3000去掉,想代理掉

那你这个,不是你之前的“静态文件”处理,就是普通的反向代理配置啊,不用纠结端口。而且你的路径是一致的,也不需要额外处理了。

    upstream app {
        server localhost;
    }

    server {
        listen 8080;
        location / {
            proxy_pass http://app;
        }
    }

上面的配置,你访问 localhost:8080 时, nginx 会反向代理到 location (80端口,其实你希望的任何端口,自己改 upstream 那节就好)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题