【问题标题】:NGINX Not Loading Resources for Second ServerNGINX 不为第二个服务器加载资源
【发布时间】:2018-05-20 13:02:31
【问题描述】:

我是 NGINX 的新手(一般来说托管良好),所以请原谅我的无知。我有一个在 localhost:4000 上运行的 Phoenix Web 应用程序和一个在 localhost:5123 上运行的 ASP.NET Web 应用程序。我正在尝试利用 NGINX 创建反向代理,以便可以从同一域访问任一 Web 应用程序。我的 NGINX 配置文件包含以下内容:

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://localhost:4000;
  }

  location /test {
    rewrite /test(.*) /$1 break;
    proxy_pass http://localhost:5123;
  }
}

我可以访问example.com/ 上的服务器 1 和example.com/test 上的服务器 2,但是,服务器 2 无法加载它自己的 css、javascript 和图像文件。有没有办法通过 NGINX 配置设置确保服务器 1 和服务器 2 使用自己的资源?

【问题讨论】:

标签: asp.net linux nginx phoenix-framework


【解决方案1】:

你是在正确的方式。您的第二个服务缺少一些行:

替换...

location /test {
    rewrite /test(.*) /$1 break;
    proxy_pass http://localhost:5123;
}

与...

location /test {
    rewrite                /test/(.*) /$1 break;
    rewrite                ^/test$ /test/ permanent;
    proxy_pass             http://localhost:5123/;
    proxy_redirect         / /test/;
    proxy_set_header       Host $host;
    proxy_buffering off;
}

我不知道这是否是实现这一目标的最佳方式。很久以前,我使用此配置在我的服务器上实现了 etherpad-service。那个时候我没有选择使用子域。无论如何 - 为您的第二项服务使用子域会更好。

【讨论】:

  • 感谢您的回复。我进行了您的编辑并重新加载了 nginx 服务,但我没有看到任何更改。 /test 中的资源仍然缺失。
  • @jsonkenl 你也重启了浏览器吗? (可能网站还在被浏览器缓存)
  • 是的,我什至打开了一个新的 Firefox 实例(目前使用的是 Chrome)和同样的问题。
  • 您的 html 中的路径类型是什么?它们是相对的还是绝对的?
  • 是的,我检查了每个字符,它与您的匹配。感谢您的努力,我将尝试使用子域。
猜你喜欢
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
相关资源
最近更新 更多