情况是这样的
因为公司所有项目需要统一迁移到某个服务器,请求由nginx进行分发。BOSS说希望我的项目的请求是这样的www.test.com/PprojectName/*
,意思是当请求过来时,他判断请求是第一层是PprojectName
是我的项目名字,那么他就把这个请求转给我,但是我的项目的请求都是这样的localhost:3000/book/list
,我要怎么满足BOSS的需求哦呢。
我的想法
因为本人是新手,想法可能比较幼稚。我的一个想法是这样的。当nginx判定这个请求是发给我的时候,在nginx转发给我的时候,把PprojectName
这个给去掉。举个例子:一个请求是这样的www.test.com/PprojectName/book/list
,当nginx转发给我的时候我收到的请求是这样的:localhost:3000/book/list
。因为对nginx也不是很熟不知道这样是否可行。
我还有一个想法是实现请求在服务器内部的跳转,就和forward一样。但是好像expressjs 并没有这个方法。
nginx 转发的时候可以设定的,只转发 * 的部份作为你接收的URL。也就转发这部分是可以直接把 test.com 的 ProjectName 映射到 localhost:3000 的根上。 但问题是你的静态资源,要注意路径就是了。