Express Nginx,快速路由问题

Express Nginx,快速路由问题,express,nginx,routes,ejs,reverse-proxy,Express,Nginx,Routes,Ejs,Reverse Proxy,我有一个应用程序运行在nginx反向代理之后,该应用程序运行良好。 应用程序是使用express构建的,ejs作为模板引擎。 但当我把它放在云上,并把它放在代理后面时,问题就发生了 以下是我的nginx配置: 服务器{ 听80; 听[:]:80; error\u log/var/log/nginx/reverse\u proxy\u error.log; access\u log/var/log/nginx/reverse\u proxy\u access.log; #我把它用于重定向来自/到

我有一个应用程序运行在nginx反向代理之后,该应用程序运行良好。 应用程序是使用express构建的,ejs作为模板引擎。 但当我把它放在云上,并把它放在代理后面时,问题就发生了

以下是我的nginx配置:


服务器{
听80;
听[:]:80;
error\u log/var/log/nginx/reverse\u proxy\u error.log;
access\u log/var/log/nginx/reverse\u proxy\u access.log;
#我把它用于重定向来自/到/预览/应用程序的流量/
地点/{
返回302/预览/app/;
}
位置/预览/应用程序/{
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
代理集头X转发协议https;
代理_重定向关闭;
代理设置头主机$Host;
代理通行证http://localhost:3000/;
access_log/var/log/nginx/app_access.log;
error\u log/var/log/nginx/app\u client\u error.log;
}
}
以下是我的视图模板(EJS):


问题是,当我单击锚定标记()时,nginx将解决它 类似于
$host/[PATH\u IN_ANCHOR\u TAG]
,在我的例子中,我希望它
$host/[my_APP\u PATH]/[PATH\u IN_ANCHOR\u TAG]
例如,如果单击contact anchor,它将解析为101.x.x.x/contact而不是101.x.x.x/preview/app/

我的第一个想法是双斜杠发生在某个地方,所以我试着从中删除开斜杠 我的锚定标签,成为:

  • 现在它很好地解析为我期望的url,但现在我必须更改应用程序菜单中的所有锚定标记,这太多了。 而且,如果我尝试直接运行到外部(没有nginx),url也会中断。 所以我决定最好设置nginx本身

    我的配置到底出了什么问题

    重要注意事项

    • /etc/nginx设置中只保留默认的nginx.conf
    • 站点上可用的所有文件都已链接到已启用的站点

      • 可能是个愚蠢的问题,但为什么不在nginx文件中设置应用程序的根位置呢

        例如:

        my app is in: /home/user/folder/app
        
        因此,在我的nginx域文件中:

        root /home/user/folder/app
        
        通过代理的任何其他重新指示,通过:

        location / {
        proxy_pass 'PATH or IP with port'
        }
        

        你的答案甚至和我的问题没有关系,这和根方向无关,如果你这么说,好吗