如何在Nginx proxy_pass网站中启用链接文件?

时间:2019-05-03 07:27:46

标签: express nginx botkit

我有一台服务器,并在端口3000和4000上运行了2个基于Express的项目。登录页面具有默认模板nginx html代码,并带有Botkit iframe嵌入代码。 Port 3000 Express服务器是Botkit入门指南项目,无需修改即可运行。 Port 4000 Express服务器只是Hello World项目。两个服务器都使用pm2执行。

下面是我的/etc/nginx/sites-enabled/default配置:

server {
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name _;
    return 301 http://hwsrv-492795.hostwindsdns.com;
    location / {
        try_files $uri $uri/ =404;
    }
}

server {
    listen 80;
    listen [::]:80;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name hwsrv-492795.hostwindsdns.com;
    location / {
        try_files $uri $uri/ =404;
    }
    location /test01/ {
        proxy_pass http://142.11.241.150:3000/;
    }
    location /test02/ {
        proxy_pass http://142.11.241.150:4000/;
    }
}

这是我无法解决的问题:

  1. Botkit Chatbot已成功加载到http://hwsrv-492795.hostwindsdns.com
  2. 虽然Botkit Chatbot在http://142.11.241.150:3000/上正常运行,但在http://hwsrv-492795.hostwindsdns.com/test01/上却没有。它仅加载/index.html,但未能加载(404)加载/css/styles.css/embed.js/chat.html
  3. Hello world在http://142.11.241.150:4000/http://hwsrv-492795.hostwindsdns.com/test02/上的表现都很好。

我可以从服务器终端curl来访问那些文件,这意味着访问那些文件没有问题。问题是,如何启用或允许使用Express服务器生成的网站的链接文件和文件夹在浏览器上可读?

1 个答案:

答案 0 :(得分:0)

如果您可以帮助这个人,因为我在同一个地方,那么这个人就会遇到这个确切的问题。我的只是Botkit-cms。

在我的情况下,我同时将botkit和Loopback3用于json api(因为其敏感信息.kinda,而我不是开发人员),但是botkit-cms可以在vultr或DigitalOcean或随便。

我试图使它像上面的人一样在一台服务器下工作,这是一个旅程,显然我并不孤单。请帮助我们理解。问题似乎在于如何将代理传递给现有的快速Web服务器?还有一个额外的问题是如何通过SSL 443路由流量。我已经尝试了Nginx和“简易”的Caddy Web服务器,因为它强制执行443并使用letencrypt进行了一些令人敬畏的自动化。球童确实确实更容易,但是我想我们缺少了强调原则。