原创

[Nginx]反向代理 syncthing,使其gui支持https访问

原因

docker里面装了个syncthing,通过映射卷的方式,把本地的一个目录,加入到了映射中,使这个目录可以作为同步的目录。 但是发现在使用的过程中,直接通过域名+端口访问的方式,没有https的保护,有一定的中间人攻击风险,于是研究了下,怎么设置nginx反向代理,使Syncthing的web gui界面支持https形式的访问。

Syncthing

下载Syncthing

因为我这里是用的docker,所以直接上docker的版本。

sudo docker pull syncthing/syncthing:1.12.0

启动Syncthing

sudo docker run -d -p 8384:8384 -p 22000:22000 --name djc8syncthing  --network=djc8net -v /djc8/syncthing/st-sync:/var/syncthing  syncthing/syncthing:1.12.0

启动起来后,查看:http://域名:8384,设置用户跟密码,设置同步的目录(建议不修改,我这里已经设置为/var/syncthing了,会对应到宿主机的/djc8/syncthing/st-sync目录,如果你调整了,对应的映射卷也要加上!) 到这里Syncthing就好了。

Nginx

这里不多说Nginx的安装方式,我已经装好了,所以添加一个vhost到系统中,并且这个vhost有了一个https的证书(免费的证书申请,看这里) 服务如下:

server {
        listen       80;
        server_name sync.djc8.cn;
        rewrite ^(.*)$  https://$host$1 permanent;
        location / {
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass              http://127.0.0.1:8384/;
            proxy_read_timeout      600s;
            proxy_send_timeout      600s;
        }
}
server {
        listen       443;
        ssl                  on;
        ssl_certificate      cert/sync.djc8.cn/sync.djc8.cn_bundle.crt;
        ssl_certificate_key  cert/sync.djc8.cn/sync.djc8.cn.key;
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        server_name sync.djc8.cn;
        location / {
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
            proxy_pass              http://127.0.0.1:8384/;
            proxy_read_timeout      600s;
            proxy_send_timeout      600s;
        }
}

其中proxy_pass http://djc8syncthing:8384/;,配置为你的syncthing内网访问的地址,这时候,防火墙就可以把这个端口关闭了,不需要这个端口再监听了。 ssl_certificate cert/sync.djc8.cn/sync.djc8.cn_bundle.crt;以及 ssl_certificate_key cert/sync.djc8.cn/sync.djc8.cn.key;是使用nginx容器中的路径,证书以及key文件。 建议使用1年的这种证书,不需要频繁申请。 之后重启容器(nginx)即可。使用https访问Syncthing的gui界面。

参考

Reverse Proxy Setup

本文来自:[Nginx]反向代理 syncthing,使其gui支持https访问-小码农,转载请保留本条链接,感谢!

温馨提示:
本文最后更新于 2020年12月28日,已超过 1,424 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录