环境

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 ,证书就更新好了!

seafile看不见repo报500错误的解决方法的更多相关文章

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

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

  2. http 500错误怎么解决方法

    出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误. 解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开 ...

  3. ajax 请求 服务器 响应内容过长 返回500错误的解决方法

    在web.config试试加上 <system.web.extensions> <scripting> <webServices> <jsonSerializ ...

  4. vmware启动虚拟机报“内部错误”的解决方法

    最近换了Win8系统,结果vmware就报了如标题描述的错误,网上查了些资料,现将解决方法记录在此,以备查阅. 右键点击wmware程序图标,选择[属性],选择[兼容性]选项卡,勾选“以管理员身份运行 ...

  5. virtualbox虚拟机中mysql远程连接登陆报2003错误的解决方法

    最近在virtualbox中安装了Ubuntu 14,配置了一个mysql server,设置的桥接网络模式.在其他电脑连接的时候,总是报2003错误.开始以为是localhost没有置换为%,运行u ...

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

    最近迁移项目中发现,转移数据库出现的几个问题,其中之一就是 2006 error,解决过程如下: 首先贴出报错结果 [Msg] Finished - Unsuccessfully 出现这个结果,首先检 ...

  7. servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因

    package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.ServletException; i ...

  8. 升级了git版本后git clone报ssl错误的解决方法

    由于升级了git版本,git clone 的时候报了如下的错误 fatal: unable to access 'https://github.com/open-falcon/falcon-plus. ...

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

    问题:系统重装后,安装和配置SSH,防火墙配置 #安装install openssh-server sudo apt install openssh-server -y 遇到问题: sudo apt ...

随机推荐

  1. Codeforces 515E Drazil and Park (ST表)

    题目链接 Drazil and Park 中文题面 传送门 如果他选择了x和y,那么他消耗的能量为dx + dx + 1 + ... + dy - 1 + 2 * (hx + hy). 把这个式子写成 ...

  2. Codeforces Round #307 (Div. 2) D. GukiZ and Binary Operations

    得到k二进制后,对每一位可取得的方法进行相乘即可,k的二进制形式每一位又分为2种0,1,0时,a数组必定要为一长为n的01串,且串中不出现连续的11,1时与前述情况是相反的. 且0时其方法总数为f(n ...

  3. 单片机C51串口发送、接收寄存器

    所以,发送和接收寄存器可使用同一地址,编写验证程序(发送和接收是独立空间):读取一个数(1)->发送一个数(2)->再读取得1则是独立空间 不知道STM32串口寄存器和C51串口寄存器是否 ...

  4. gcc、arm-Linux-gcc和arm-elf-gcc的组成及区别

    2017-01-19 嵌入式ARM 嵌入式ARM 一.GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器集而不是编译 ...

  5. Go -- 漫谈IM通信架构

    前前后后做的IM和推送系统已经有好几个了,一直都想好好总结下,因此就有了这篇文章.在我刚学编程的那会儿,觉得网络通信是一个很牛逼和门槛很高的一门技术,但是随着开源技术的发展和互联网知识的共享,现在要写 ...

  6. paddle中新增layer

    Implement C++ Class The C++ class of the layer implements the initialization, forward, and backward ...

  7. Matlab中配置VLFeat

    在VLFeat官网上是这么介绍VLFeat的:VLFeat开源库实现了很多著名的机器视觉算法,如HOG, SIFT, MSER, k-means, hierarchical k-means, aggl ...

  8. 在Nginx上部署ThinkPHP,解决Pathinfo问题

    在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支 ...

  9. Windows-速度优化的几个方面

    One. Win+R - > cmd- > msconfig 禁用不需要的启动项! Two. 关闭一些视觉选项 Three. 设置应用启动快捷键

  10. 分享一个ci 框架下取不到cookie的问题

    由于项目中用到了网银支付,在360极速浏览器和其它双核浏览器中,当跳转到付款时他们会强制的把浏览器的模式改为兼容模式,这样一来在极速模式下的cookie在兼容模式下取不到,因为浏览器切换模式的时候us ...