如何通过代理服务器托管脚本以隐藏源服务器地址?技术问询
问题
搭建网站时需要加载第三方服务器的脚本,但希望隐藏该脚本的原始服务器地址,让网站用户无法在源码中看到真实来源。
当前使用的脚本代码:
<div><script src="https://ORIGIN-SERVER-URL.js" id="hidden_embed_calendar" data-env="https://www.hidden.com" data-version="v0.3" data-uid="934582" data-uuid="79681090" data-color="33ae3f" data-text="Book Now" data-title="Select Departure Date"></script></div>
期望修改为指向自有服务器的脚本地址:
<div><script src="https://MY-SERVER.js" id="myserver_embed_calendar" data-env="https://www.myserver.com" data-version="v0.3" data-uid="934582" data-uuid="79681090" data-color="33ae3f" data-text="Book Now" data-title="Select Departure Date"></script></div>
需了解实现配置的方法,以及正确的搜索术语。
实现配置方法
方法一:反向代理(推荐,性能最优)
以Nginx为例,在服务器的Nginx配置文件中添加反向代理规则,将https://MY-SERVER.js的请求转发至原始脚本地址:
server { # 保留原有配置... location = /MY-SERVER.js { proxy_pass https://ORIGIN-SERVER-URL.js; proxy_set_header Host ORIGIN-SERVER-DOMAIN; # 替换为原始脚本所在域名 proxy_set_header Referer $http_referer; proxy_cache_valid 200 1h; # 可选配置,缓存脚本以提升加载性能 } }
配置完成后重启Nginx即可。此时用户访问https://MY-SERVER.js时,服务器会从原始地址拉取脚本并返回,用户在源码中只会看到你的服务器地址。
方法二:服务器端脚本中转(适用于无Nginx权限场景)
以Node.js为例,编写简单中转接口,创建myserver.js文件:
const http = require('http'); const https = require('https'); http.createServer((req, res) => { if (req.url === '/MY-SERVER.js') { https.get('https://ORIGIN-SERVER-URL.js', (originRes) => { res.writeHead(originRes.statusCode, originRes.headers); originRes.pipe(res); }).on('error', () => { res.writeHead(500); res.end('Failed to load script'); }); } else { res.writeHead(404); res.end(); } }).listen(3000); // 可根据服务器情况调整监听端口
将该脚本部署到你的服务器后,通过反向代理工具(如Nginx)将https://MY-SERVER.js指向此Node服务的对应路径即可。
正确搜索术语
- 反向代理 隐藏脚本源地址
- Nginx 代理静态资源
- JavaScript 脚本中转代理
- 服务器端脚本转发
你之前搜索的javascript proxy server方向正确,但结合“反向代理”或“脚本中转”的关键词,能更精准找到对应方案。
内容的提问来源于stack exchange,提问作者Eilander123
相关产品推荐
相关产品推荐

