环境

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. cf493E Vasya and Polynomial

    Vasya is studying in the last class of school and soon he will take exams. He decided to study polyn ...

  2. git提交之后没有push,代码被覆盖之后恢复

    git  reflog  通过这个看commit id git reset [commit id] --hard   有时候要删除一个index.lock文件.

  3. Laravel 5 Form 和 HTML 的使用

    最近在用 laravel 5 做例子,在做到表单的时候,习惯性的使用 Form::open() 结果发现提示错误,没有这个类, 好吧,找了找,发现 在laravel 5 中,把 from 和 html ...

  4. net3:Calendar控件的使用

    原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  5. javascript实现数据结构----栈

    //栈是一种遵从后进先出原则的有序集合. //新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端就叫栈底 //在栈里,新元素都靠近栈顶,旧元素都叫做栈底 function Stack(){ va ...

  6. hdu4888 多校B 最大流以及最大流唯一判断+输出方案

    题意,给一个矩阵,告诉你每行和.每列和,并且限制所填数不大于k,问矩阵是否唯一. 经典建图不说了,第一次遇到判断最大流唯一性的,学习了:用dfs来判断残网中是否还存在环,若存在,则表明绕这个环走一圈, ...

  7. 【Java】NIO中Selector的select方法源码分析

    该篇博客的有些内容和在之前介绍过了,在这里再次涉及到的就不详细说了,如果有不理解请看[Java]NIO中Channel的注册源码分析, [Java]NIO中Selector的创建源码分析 Select ...

  8. Python3 MySQL 数据库连接 - PyMySQL 驱动 笔记

    sql插入语句(推荐): str_mac = "nihao" # SQL 插入语句 sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ L ...

  9. Linux出现cannot create temp file for here-document: No space left on device的问题解决

    在终端输入:cd /ho 按tab键时,显示错误: bash: cannot create temp file for here-document: No space left on device 这 ...

  10. Go -- log4go日志

    折腾: [已解决]go语言中实现log信息同时输出到文件和控制台(命令行) 期间,已经通过io的MultiWriter搞定了同时输出信息到文件和console,但是不支持level. 所以,再去试试这 ...