如何浏览器同步反向代理服务器的基本路径?

时间:2020-09-29 14:44:17

标签: nginx nginx-reverse-proxy browser-sync

我正在反向nginx代理后面运行浏览器同步,并且能够通过它检索文件和资产,但是该代码段和UI脚本URL不包含我的URL代理基本路径,因此找不到配置它的选项。我需要告诉浏览器同步,在它返回服务器的每个GET SCRIPT请求中,用我的nginx配置中定义的“主机/路径”替换默认的“主机”。

以下nginx配置获取正确的源文件和套接字连接等。

server {
    listen 80;
    server_name browsersync.syntapse.co.uk;

    location ~ (\/simple)(\/.+)(\/.+.js) {
        # default_type text/html;
        # return 200 "location */browser-sync-client.js/*, arg=$1 arg=$2 arg=$3" ;
        proxy_pass http://0.0.0.0:3000$2$3;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /simple/browser-sync/socket.io {
      proxy_pass http://0.0.0.0:3000/browser-sync/socket.io;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
    }

    location /simple {
      proxy_pass http://0.0.0.0:3000/;
    }

    location /simple/ui/ {
      proxy_pass http://0.0.0.0:3002/;
    }
}

此配置按预期加载位置,但由于其回叫到/而不是/ simple,导致内部404错误:

browsersync.syntapse.co.uk/simple(http://0.0.0.0:3000):

404 error - https://browsersync.syntapse.co.uk/browser-sync/browser-sync-client.js?v=2.26.12

browsersync.syntapse.co.uk/simple/ui(http://0.0.0.0:3002

404 error - https://browsersync.syntapse.co.uk/lib/client-js.js
404 error - https://browsersync.syntapse.co.uk/js/pages-config.js
404 error - https://browsersync.syntapse.co.uk/js/app.js
404 error - https://browsersync.syntapse.co.uk/js/vendor/socket.js

我可以看到这些失败的原因,我只是不知道如何覆盖它们以指向我的服务器,位于browsersync.syntapse.co.uk/simple的站点。

我还可以看到有一个basePath服务器{}选项,但是没有基本URL。我尝试将scriptPath选项设置为url / path,但这也不起作用。

摘要:我需要告诉浏览器同步我的服务器已被代理,以便它可以将正确的代理URL插入回服务器的所有JavaScript调用中。为避免混淆,我不使用浏览器同步代理现有服务器,而是反向代理浏览器同步服务器本身。

非常感谢任何帮助或建议。

0 个答案:

没有答案