syncthing使用nginx反代理,绑定域名访问

2018-12-18


syncthing是一款开源同步工具,可以在多台设备之间同步文件,如果在自己的vps上安装,那么就可以实现私有的云同步了。

同步速度还是很快的,基本是一把文件拖进文件夹,就会看到同步开始进行,小文件的话,几秒钟就能在另一台手机上看到所同步的文件了。

不过访问服务器上的syncthing的方法是通过网址http://IP:8384,使用http明文方式传输不是很安全,就算使用自带的加密,chrome浏览器上也会显示红线划掉的https,逼死强迫症,而且有一个自有域名,怎能浪费。

syncthing配置还是很简单的,如果不需要在服务器上使用,而是只需要在手机和电脑之间同步文件,那就更简单了,直接安装客户端,配置同步设备和文件就可以了。服务器上的搭建教程可以参考:syncthing搭建教程:拥有自己的文件同步服务器,在设备间快速同步文件

配置解析

syncthing要使用域名访问的话,需要先设置域名解析,也就是给添加一个syncthing添加一个域名,例如我的域名是wenjinyu.me,这里以syncthing.wenjinyu.me举例。

了解如何设置域名解析,可以查看:设置域名解析:给域名设置一些实用有趣的二级域名

配置解析之后,还需要对服务器进行配置,这里选择nginx作为web服务器,先添加一个配置文件:

1
vim /etc/nginx/conf.d/syncthing.conf

nginx配置文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server {
listen 443 ssl;
server_name cloud.wenjinyu.me; # 这里替换为自己的域名
ssl_certificate /etc/letsencrypt/live/cloud.wenjinyu.me/cert.pem; # 替换为ssl密钥存放位置
ssl_certificate_key /etc/letsencrypt/live/cloud.wenjinyu.me/privkey.pem; # 同上
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

location / {
proxy_set_header Host localhost;
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;

auth_basic "RESTRICTED ACCESS"; # 加密
auth_basic_user_file /etc/nginx/.htpasswd; # 加密文件位置
}
}

server {
listen 80;
server_name cloud.wenjinyu.me;
return 301 https://cloud.wenjinyu.me;
}

由于配置了域名,任何人都可以登录这个网站,所以需要使用加密,nginx自带加密,配置了上面的nginx配置文件之后,先不急着重载nginx,需要先生成加密密码:

1
2
sudo sh -c "echo -n '用户名:' >> /etc/nginx/.htpasswd"
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

按下回车,按照提示输入两次密码即可。

需要注意的是,用户名后面有冒号,生成的密码文件位于/etc/nginx/.htpasswd,这个密码文件其他网站也可以使用。

此时重载nginx:

1
nginx -s reload

然后使用域名打开网站,应该就能看到一个用户密码输入框,输入刚才设置的用户密码就可以登陆了。chrome的输入密码界面大概像这样子:

syncthing登录.png

如果密码输入错误或者不输入密码,那么就会变成404页面:

登录syncthing密码输入错误的404页面.png

打开syncthing后,如果出现这个提示

1
Host check error

关掉使用加密连接到图形管理页面

syncthing取消使用加密连接到图形管理页面.png

然后使用浏览器访问域名就能打开了

此时还能通过http://IP:8384进行访问,可以修改配置文件:



评论