ash*_*ash 6 nginx proxypass node.js koa
我在端口5000上运行Koa应用程序,我希望Ngnix在子目录中提供应用程序 - 例如: http://example.com/myNodeApp
这就是我目前所拥有的 /etc/nginx/sites-enabled/default
location ^~ /myNodeApp/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:5000/;
}
Run Code Online (Sandbox Code Playgroud)
这类型的作品......除了那如任何重定向的事实this.redirect('/')在我兴亚应用程序转到nginx的Web根目录/
此外,它不会从我的Koa应用程序的public目录中呈现任何内容,例如样式表,javascript和图像.
我究竟做错了什么?谢谢.
小智 7
我最近遇到了同样的问题,这就是我所做的修复它.
在服务器配置中:
我不得不补充一下
rewrite ^/myNodeApp/(.*)$ /$1 break;
Run Code Online (Sandbox Code Playgroud)
到NGINX配置,在
location /myNodeApp/ {...}
Run Code Online (Sandbox Code Playgroud)
阻止,在您的示例中已有的内容.
在客户端:
我补充道
<base href='/myNodeApp/'>
Run Code Online (Sandbox Code Playgroud)
到我的html文件的<head>(或者我的情况下的pug布局文件).这会为您子目录的所有链接添加前缀.
请注意,您需要从现有链接中删除任何前导/.例如
<link rel="stylesheet" href="layout.css">
Run Code Online (Sandbox Code Playgroud)
代替
<link rel="stylesheet" href="/layout.css">
Run Code Online (Sandbox Code Playgroud)
那个人抓了我一会儿.
奖金:
如果您正在使用Socket.IO,就像我一样,您需要进行一些更改以阻止控制台中出现的一些错误.您需要传递一个路径选项并指定您的子目录.
在你的HTML文件中
var socket = io.connect("/", {path: "/myNodeApp/socket.io"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2042 次 |
| 最近记录: |