环境

seafile-server-6.2.5

centos7.5 1804

现象

seafile服务器所在的VPS没动过,前一天seafile用还好好的,昨天客户端突然不能登录了,显示“服务器内部错误”;网页版可以登录,但看不见仓库,显示为红色Error字。

重启服务重启系统都无效,就需要慢慢排查问题了。

F12可见好多红色失败请求

登录VPS看日志,根据我的配置,

lnmp日志在/home/wwwlogs/目录下

seafile日志在/sharefiles/logs/目录下

都看看。

在seahub_django_request.log中发现了猫腻(另外注意上面报警告.well-known/acme-XXXXXXXX找不到,这个与Let'sEncrypt + LNMP更新SSL证书有关,下面会说)

与浏览器报错应该是一个问题。

查了下,pickle包EOFError错误一般是打开了空文件,所以找找这里是打开了哪个文件。

抛异常的位置都找到了,追追源码吧。

在filebased.py里找到

缓存文件具体是什么名?在哪个目录?要找django的配置文件,太麻烦,find暴力搜索!

find / -name "*.djcache"

找到了,果然有一个文件是0字节,就是它,导致seafile每次pickle它直接异常,导致整个服务不可用o(╥﹏╥)o

删了吧,缓存文件全删了吧

删完缓存文件,seafile就可以用了。。。

至于这个0字节的文件怎么来的,有可能产生缓存文件时,VPS挂了,还没来得及把缓冲区刷进磁盘。这个VPS总挂,不太稳定。

另外,

关于在LNMP上使用seafile,即nginx反向代理seafile,并配置Let'sEncrypt SSL证书,出现证书到期后不能顺利更新的问题:

lnmp1.4使用acme.sh脚本更新SSL证书,这里acme配置了seafile的web根目录为/home/wwwroot/aaa.bbb.ccc,其中aaa.bbb.ccc是我的seafile服务器的域名,

acme更新证书时为了验证你对web的所有权,会在web根目录下生成随机文件.well-known/xxxxxxxxxxxxxxxxxxxxxxxx,然后它会从用HTTP协议访问这个url,

即http://aaa.bbb.ccc/.well-known/xxxxxxxxxxxxxxxxxxxxxxxx,访问成功说明有权限,web是你的无误。

正常lnmp建立的虚拟主机都能正常颁发证书、更新证书,但是这个seafile却不行,为啥呢?因为是nginx反向代理了seafile,seafile目录并不在/home/wwwroot/aaa.bbb.ccc目录

即acme配置的web跟目录与nginx + seafile实际的web目录不符合,访问不到这个token文件,就更新失败了呢。

查看seafile的nginx vhost配置

可见如果访问http://aaa.bbb.ccc/.well-known/xxxxxxxxxxx都会被代理到8000端口,由seahub服务处理,那个服务目录并不是/home/wwwroot/aaa.bbb.ccc

(实际这是个空目录,lnmp建立vhost时生成的,而这个vshost用于反向代理seafile,目录并没有用)

解决方法,使配置一致就好了。

这里添加了一条location,处理.well-known子路径,定位到/home/wwwroot/aaa.bbb.ccc目录,

nginx -s reload 使新配置生效,再去手动执行acme.sh ,证书就更新好了!

转载于:https://www.cnblogs.com/nidey/p/9634940.html

seafile看不见repo报500错误的解决方法相关推荐

  1. Mac appStore下载软件报500错误的解决方法

    Step1.打开"启动台": Step2:打开"其他": Step3:打开"终端": Step4:复制如下代码,主要不要作任何更改,不要有多 ...

  2. maven的pom报plugins错误的解决方法.

    maven的pom报plugins错误的解决方法. 参考文章: (1)maven的pom报plugins错误的解决方法. (2)https://www.cnblogs.com/sjcq/p/61940 ...

  3. windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法

    windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 参考文章: (1)windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 (2)https://www. ...

  4. MySql报2006error错误的解决方法(数据过大)

    MySql报2006error错误的解决方法(数据过大) 参考文章: (1)MySql报2006error错误的解决方法(数据过大) (2)https://www.cnblogs.com/yangji ...

  5. ubuntu16.04下安装openssh-server报依赖错误的解决方法

    ubuntu16.04下安装openssh-server报依赖错误的解决方法 参考文章: (1)ubuntu16.04下安装openssh-server报依赖错误的解决方法 (2)https://ww ...

  6. 连接MYSQL数据库,报1130错误的解决方法

    连接MYSQL数据库,报1130错误的解决方法 参考文章: (1)连接MYSQL数据库,报1130错误的解决方法 (2)https://www.cnblogs.com/y792552640/p/102 ...

  7. mysql 1058_MySQL数据库之mysql启动服务报1058错误的解决方法

    本文主要向大家介绍了MySQL数据库之mysql启动服务报1058错误的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天研究一个框架,数据库使用mysql,启动my ...

  8. mysql 1058_MySQL数据库之mysql启动服务报1058错误的解决方法

    本文主要向大家介绍了MySQL数据库之mysql启动服务报1058错误的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天研究一个框架,数据库使用mysql,启动my ...

  9. 微软win11安装助手报0x80888002错误的解决方法(官方工程师方法)

    报错介绍 这个错误是因为检测电脑是否可以安装导致,通常出现在安装阶段75%,第一次会重新安装,第二此会报 0x80888002错误. 解决方法 在https://www.microsoft.com/z ...

  10. 测绘——CAD2008+CASS9.1批零插入图块不成功及打开低版本dwg报内部错误的解决方法

    CAD2008+CASS9.1批零插入图块不成功及打开低版本dwg报内部错误的解决方法 博主最近在做地籍调查项目,很多时候需要对地形图数据进行整合拼接以及投影转换,需要对分幅数据进行整合,此时**&q ...

最新文章

  1. 如何让您的php也支持pthreads多线程
  2. 使用纯 Win32 API 编程实现Winpcap 封包捕获的第一个例子
  3. mongodb Install the MongoDB service
  4. X光扫描揭示芯片密码卡入侵手段
  5. 2017.9.27 书架 思考记录
  6. 为什么说区块链是具有革命性意义的?
  7. 使用 SYSENTER 和 SYSEXIT 指令执行对系统过程的快速调用
  8. Mysql基础知识--视图
  9. 2020-09-08 Win7-Win10内部版本号
  10. 计算机原理课 如何在中小学课堂中变成有趣,在课堂中如何发挥电教辅助教学优势...
  11. Oracle - 查询语句 - 多表关联查询
  12. bootstarp怎么使盒子到最右边_江湖救急!盒子显示“很抱歉Launchercust 已停止运行” ?...
  13. 2020语言与智能技术竞赛-事件抽取方案整理(第一波
  14. 计算机控制总线传输的是,总线,地址总线,数据总线和控制总线
  15. 检测卡常见错误:1A、1B、20、21、22
  16. 如何以2万美元出售你的软件
  17. VBA解锁/上锁worksheet和workbook
  18. 人人都是创业者:视屏和企业合并连接怎么制作
  19. 基于“业务中台”构建的一些理解
  20. 饭店餐饮点餐系统为什么这么受欢迎?

热门文章

  1. mysql8.x非注册使用[{绿色使用]
  2. 学生选课系统代码-5-共用代码层
  3. Python 打印字典的KEY 和 VALUE
  4. 大师兄科研网_挑战杯经验分享会与你话科研
  5. redis jar包_「建议收藏」手把手教你从零搭建一个redis服务
  6. mac os虚拟机镜像_为旧型Mac电脑配置支持OS 9的网络启动
  7. flex布局精髓和填坑
  8. Java编程思想1-对象导论
  9. 网站发布助手V1.1 (去年写的简单小工具)
  10. Weka--Explorer基本流程