微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx,快速路由问题

如何解决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 举报,一经查实,本站将立刻删除。