客户端file_server端口号

由于限制原因,服务器端file_server不能用原来的8082端口,改为45xxx端口,结果windows客户端外网域名访问(外网不能用IP访问)时本地磁盘无法同步了,客户端难道只能用8082?

如果用反向代理,windows seafile服务器上如何配置?

可以参考https://manual-cn.seafile.com/deploy/https_with_nginx.html,用nginx配代理,最后客户端配置地址用 http://xxxx:45xxx 即可

server {
listen 45xxx;

location / {
proxy_pass http://127.0.0.1:8000;

location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;

非常感谢,不过还是不行啊。我的seafile服务器在本地192.168.6.xx的windows机器上,外网访问原先用的http://pan.xxx.com:8010.后来用了花生壳的内网穿透,seahub 8010—>212xx,seafile_server 8082—>458xx,外网用http://pan.xxx.com:212xx还是可以访问,正常上传下载的,但是不能本地硬盘同步。

看了下网上的说法以及你的指导建议。我用了nginx 1.12,配置如下:


然后执行 start nginx

[seafile]
在web页面设置了:
SERVICE_URL: http://pan.xxx.com //(ccnet.conf里边也修改了)
FILE_SERVER_ROOT: http://pan.xxx.com/seafhttp //(sehub_setting.py里边也修改了)

重启seafile_server和花生壳,此时,在客户端用:http://pan.xxx.com:45875连接不上、无法访问;用http://pan.xxx.com:21286可以访问,但是web页面和客户端都不能上传下载。
还请帮忙看下问题所在

用了nginx之后就只需要映射nginx的http端口到公网,原来的8010和8082就不需要映射了。SERVICE_URL和FILE_SERVER_ROOT用对应映射的端口

意思是我不再需要配置花生壳做内网穿透,直接用nginx+seafile配置就可以了,对吗?还是说,在花生壳内网穿透时把nginx的https端口映射到公网,而不是把8010、8082映射到公网

最新进展:
【Nginx】
监听了212xx端口,域名:pan.xxx.com
listen 212xxx;
server_name pan.xxx.com

location / {
proxy_pass http://127.0.0.1:8010;

location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;

start nginx.exe成功

花生壳将nginx监听的 212xx 端口映射到公网。
内网IP192.168.6.xxx:212xxx——>外网访问pan.xxx.com:21xxx
SERVICE_URL: http:// pan.xxx.com:212xxx
FILE_SERVER_ROOT: http://pan.xxx.com:458xx

客户端用http://pan.xxx.com:212xxx可以访问、上传、下载、本地磁盘同步了。但是web页面访问不了了?什么原因,还请指导一下?是因为FILE_SERVER_ROOT设置有问题?还是应该在nginx监听两个端口(在增加一个458xx)?

是的:在花生壳内网穿透时把nginx的212xxx端口映射到公网,而不是把8010、8082映射到公网

FILE_SERVER_ROOT:http://pan.xxx.com:212xxx/seafhttp

1 个赞

你好,按照你建议的方式填写FILE_SERVER_ROOT:http://pan.xxx.com:212xxx/seafhttp之后,用内网的192.168.6.xx:8010可以web访问,但是http://pan.xxx.com:212xxx客户端可以正常上传、下载、同步,但是web网页还是无法访问哦。。。

嘿嘿,参考了你的另外一个帖子https://bbs.seafile.com/t/topic/4727;
在nginx的nginx.conf配置文件中修改
proxy_set_header Host $host;

proxy_set_header Host $http_host;
然后就可以了

能贴一下大致的配置吗?我现在路由器是https前端,反向代理到http的后端服务器80端口,试过好次都不行。外网是44443访问路由器的DDNS