Nginx,快速路由问题

问题描述

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

这是我的 Nginx 配置:

CMD

这是我的视图模板 (EJS):


 server{
     listen 80;
     listen [::]:80;
     error_log /var/log/Nginx/reverse_proxy_error.log;
     access_log /var/log/Nginx/reverse_proxy_access.log;

     # I put this to redirect traffic from / to /preview/app/
     location / {
       return 302 /preview/app/;
     }
     
     location /preview/app/{
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto https;
          proxy_redirect off;
          proxy_set_header Host $host;
          proxy_pass http://localhost:3000/;
          access_log /var/log/Nginx/app_access.log; 
          error_log /var/log/Nginx/app_client_error.log;
     }

}

问题是当我点击锚标签()时,Nginx解决它 类似于 <div class="container d-flex align-items-center justify-content-between"> <h1 class="logo"><a href="/">AppName.</a></h1> <!-- Uncomment below if you prefer to use an image logo --> <!-- <a href="index.html" class="logo"><img src="assets/img/logo.png" alt="" class="img-fluid"></a>--> <nav class="nav-menu d-none d-lg-block"> <ul> <li class="<%= active==='home'?'active':''%>"><a href="/">Home</a></li> <li class="<%= active==='contact'?'active':''%>"><a href="/contact" >Contact</a></li> </ul> </nav><!-- .nav-menu --> </div> ,在我的情况下,我希望它 $host/[PATH_IN_ANCHOR_TAG] 例如,如果我单击联系人锚点,它将解析为 101.x.x.x/contact 而不是 101.x.x.x/preview/app/

我的第一个虽然是双斜线发生在某处,所以我尝试从 我的锚标签,变成:

$host/[MY_APP_PATH]/[PATH_IN_ANCHOR_TAG]

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

我的配置有什么问题吗?

重要说明

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)