我正在反向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调用中。为避免混淆,我不使用浏览器同步代理现有服务器,而是反向代理浏览器同步服务器本身。
非常感谢任何帮助或建议。