jsproxy 是一款开源的 proxy 工具,其特点是在浏览器端通过 JS 代理实现打开任意其他网站。
下图展示了 jsproxy 的基本原理:
通过代理可以访问什么服务,是和运行 jsproxy 的网络环境有关的。
jsproxy 官网给了一个部署教程,对于一个 Docker 用户来说,我更希望有对应的 Docker 部署方案。于是我就创建了 jsproxy-docker 项目。
这个项目可以帮助对 jsproxy 感兴趣的朋友快速搭建出一个自己的 proxy 服务。
快速开始
开始本项目之前,需要具备 Docker 的基础知识。如有必要,可以跟着这个文档先学习一下 Docker。
下载镜像:
docker pull rxh1212/jsproxy
启动 jsproxy 容器:
docker run -d -p 8080:8080 --name jsproxy rxh1212/jsproxy
启动以后,打开http://localhost:8080即可看到效果。
前置 Nginx proxy_pass
jsproxy 客户端使用了 service worker,要求网站运行在安全域名下——localhost或者支持 https。这个教程的目的是使用 Nginx 实现 https 访问后,通过 proxy_pass 将流量链接至 jsproxy。这样可以实现 jsproxy 服务自定义域名,同时也符合 service worker 对安全域名的要求。
Nginx 反向代理教程:github.com/manooog/jsp…
更详细的教程可以参考上面给出的文档,这里只给出 Nginx 的配置以供参考:
server {
listen 443 ssl http2;
# 需要自定义的域名
server_name demo.domain.com;
# 证书配置,本地测试可以使用自签名证书
ssl_certificate /certs/cert.pem;
ssl_certificate_key /certs/key.pem;
location / {
# 这行配置是关键
proxy_set_header Host 127.0.0.1;
proxy_pass http://jsproxy:8080;
}
}
全文完,欢迎大家在评论区交流。