From 20957c768fcf6797fcc52db64ba5b838ea144402 Mon Sep 17 00:00:00 2001 From: zjcqoo Date: Fri, 26 Apr 2019 11:15:48 +0800 Subject: [PATCH] =?UTF-8?q?nginx=20=E9=85=8D=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 ++++++++++++++++----- nginx.conf | 12 +++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 50bf69e..3ae53ee 100644 --- a/README.md +++ b/README.md @@ -49,19 +49,30 @@ yum install -y \ # 部署 -参考 `gen-cert` 目录,为自己的域名申请证书。(不申请证书也可以,例如通过 CloudFlare) - -修改 `nginx.conf` 中域名相关的配置(默认被注释),以及 DNS 地址(默认是 114.114.114.114)。 +## 客户端 浏览器端项目位于:https://github.com/EtherDream/jsproxy-browser -参考备注,修改线路服务器地址,之后将 www 目录发布到 Web 空间即可。 +准备一个域名(例如 `example.com`),解析 IP 到自己的服务器。 -在 `allowed-sites.txt` 中添加 Web 空间的地址,重启服务生效。该文件授权哪些网站可以调用该接口,防止被滥用。 +参考备注,将 `example.com` 添加到线路服务器地址。 + +> 注意:端口是 8443,不是 8080。因为 Service Worker 只有本地测试可用 HTTP 协议,其他场合必须 HTTPS。 + +执行 `./debug.sh` 编译脚本,将 `www` 目录发布到 Web 空间(例如 `https://myhost.github.io`) (目前还不完善,之后将实现动态配置,无需修改 JS 代码) +## 服务端 + +给域名 `example.com` 申请证书,保存到 `cert/example.com/` 目录下。(可参考 `gen-cert` 目录,使用脚本自动生成,得到 `ecc.key` 和 `ecc.cer` 文件) + +修改 `nginx.conf` 中域名相关的配置(默认被注释)。 + +在 `allowed-sites.txt` 中添加 Web 空间的地址(例如 `https://myhost.github.io`),重启服务生效。 + + # 安全策略 如果不希望代理访问内网,可执行 `setup-ipset.sh`,避免 SSRF 风险。 diff --git a/nginx.conf b/nginx.conf index 07509f0..350aeda 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,12 +1,13 @@ http { server { - # server_name *.etherdream.com; + # server_name example.com; + # ssl_certificate cert/example.com/ecc.cer; + # ssl_certificate_key cert/example.com/ecc.key; # listen 8443 ssl http2; - # include cert/etherdream.com/ngx.conf; listen 8080; include api.conf; } - resolver 114.114.114.114 ipv6=off; + resolver 1.1.1.1 ipv6=off; resolver_timeout 10s; keepalive_timeout 60; @@ -26,7 +27,8 @@ http { # separated by tab (\t) log_format log_proxy escape=none - '$time_iso8601 $_ver $remote_addr $upstream_cache_status $request_time ' + '$time_iso8601 $_origin_id $_ver $remote_addr ' + '$upstream_cache_status $request_time ' '$request_length $bytes_sent ' '$request_method $_url $status $upstream_http_access_control_allow_origin ' '$http_user_agent' @@ -48,7 +50,7 @@ http { proxy_busy_buffers_size 64k; proxy_send_timeout 10s; - map $http_origin $_origin_allowed { + map $http_origin $_origin_id { include allowed-sites.txt; } }