问题描述
我有一个在 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 (将#修改为@)