跳到主要内容

常见问题

绑定域名

由于项目为前后端分离设计,顾需要两个域名:服务端的域名供前端页面调用接口使用,和前端页面域名供访客访问网站使用。

需要注意的是:

1.若想要加ssl证书,则需要前后端域名全部添加,不要只添加一个

2.受Chrome新版内核的安全限制,前后端域名需保证为主域名,如:api.example.com和 img.example.com

使用Nginx的反向代理功能,即可轻松实现绑定域名。

以宝塔举例(原生Nginx请自行修改配置文件): 宝塔反向代理

注意:

如果是采用一键安装包方式,前端域名反向代理的端口为:10089,后端域名反向代理的端口为:10088

如采用手动分离式安装方式,则自行根据自己定义的端口进行反向代理

宝塔面板配置Nginx:

宝塔用户在反向代理中添加:目标URL如 http://127.0.0.1:10088 > 发送域名 $host 即可。

手动配置Nginx:

大概原理(你解析的域名反代到服务器的ip上):http://aaa.com -> http://187.0.0.1:8080

例如:

server {
listen 443 ssl;
server_name api.down.yoga;
client_max_body_size 1024M;
ssl_certificate /etc/nginx/keys/cert.pem;
ssl_certificate_key /etc/nginx/keys/key.pem;
root html;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:10088;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

具体步骤请自行百度即可


上传文件出现上传失败但是后台相册已经存在

这种情况可能是在上传较大的图片忧郁等待时间过久引起的响应超时,页面随便显示失败,但其实后台已经上传成功了。 针对这种情况,是由于Nginx默认配置所导致的,Nginx的默认超时时间是60s当上传等待超过60s,页面就会响应504代码,顾会提示失败。

添加Nginx的超时配置即可(如下实例,我把超时时间改为900s,也可根据自身服务器情况和上传时间):

PS:

  • 更改完数据库后,需要重启Nginx服务
  • 修改 后端域名 的Nginx配置,不是前端域名
    # 网络连接/读/写超时设置
proxy_send_timeout 900s;
proxy_read_timeout 900s;
proxy_connect_timeout 900s;

附带截图(以宝塔为例)

Nginx配置


程序的迁移和备份

第一步:把完整的程序目录复制到新服务器上。

第二部:在系统的根目录,复制/HellohaoData目录到新服务器的根目录下即可,注意保持文件夹有足够的权限(如果你使用了程序专用mysql的docker镜像,那么数据库信息也在此文件夹内)

第三步:数据库迁移(不再赘述)


开源版数据库迁移Core版

目前还没来及开发一键迁移功能,如果有数据,需要迁移,可使用三方的mysql客户端功能,进行表结构和数据同步,即可!


上传文件提示:操作过于频繁

该提示为系统的防御机制,主要用作防止接口而已访问调用的功能性防护,如果短时间内频繁访问接口的次数超过了设定的安全阀值,那么就会被拦截拒绝访问。

具体参数配置可参考高级配置>系统访问安全阀控制根据自己的业务需求进行自定义配置 docker-compose方式的用户,可在配置文件中配置


性能调优

通过基本的JVM性能调优可达到优化内存占用的作用:

  • JVM初始分配的内存由-Xms指定,默认是物理内存的1/64
  • JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4

这里推荐两个参数设置成为一样的大小,至于为什么,有什么好处,想深入了解的自行百度。

PS:不了解切记不要胡乱设置,可能造成程序运行不稳定崩溃!!!

批量上传数量多的用户、使用无损压缩、水印等功能的用户尽量加大服务器的内存和CPU(同时再升级JVM的参数),该些功能对性能消耗较大的,否则造成程序暂时卡死、内存溢出、上传失败等问题

推荐按照一下的设置进行操作:

#开源版
java -server -Xms256m -Xmx256m -jar Tbed.jar
#或
java -server -Xms512m -Xmx512m -jar Tbed.jar

#Core版
./hellohao java -server -Xms256m -Xmx256m -jar TbedCore
#或
./hellohao java -server -Xms512m -Xmx512m -jar TbedCore

安装插件后生成全景视图一直显示处理中...

此问题部分服务器可能会出现。

遇到此问题需要重启一下服务器,然后再部署程序即可。



Core版本执行部署bash: ./hellohao: Permission denied

此报错问题在于没有权限。

解决办法:将hellohao文件权限赋777重新执行即可。


linux中文水印乱码显示框框.

由于不同厂家的服务器系统字体库也不同。安装中文字体库即可。

字体包下载:https://www.lanzoux.com/iHwPdh1x05g

解决办法:
进入/usr/share/fonts/创建文件夹cjkuni-uming
下载文件,压缩包解压后把uming.ttc文件放入/usr/share/fonts/cjkuni-uming中
为字体赋值755权限
执行一下命令:
cd /usr/share/fonts/cjkuni-uming
sudo mkfontscale #(如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )
sudo mkfontdir
sudo fc-cache -fv #(如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )
这样所有的步骤就算完成了,最后再次通过fc-list看一下字体列表会出现我们新加的中文字体。
如果没有这个命令,那就是没有安装font命令包 yuminstall *font* 装好后再试试可不可以使用fc-list命令
重启系统即可!!!


Backblaze(B2)文件删除后为隐藏文件

这个是backblaze自己机制的问题。我们需要在储存桶处修改一处设置即可。

登录backblaze后,点击Lifecycle Settings然后选择Keep only the last version of the file,再点击Updata Bucket即可。


部署过程中出现"Specified key was too long; max key length is 767 bytes"报错

此报错属于数据库索引问题,请按照如下方法操作即可解决,理论上及时不处理这条错误也能正常使用。

先检查一下是不是数据库被限制了索引的大小
SHOW variables like 'innodb_large_prefix'

如果查询的值是OFF的话 执行下面命令
SET GLOBAL INNODB_LARGE_PREFIX = ON;

执行完了 之后 还得查看当前的innodb_file_format引擎格式类型是不是BARRACUDA
SHOW variables like 'innodb_file_format'

如果不是的话则需要修改
SET GLOBAL innodb_file_format = BARRACUDA;


对接sharex

对接sharex有两种调用方式:Token邮箱密码方式,如果你是Core付费版,可以从Token或者邮箱密码方式中任意挑选自己喜欢的,如果你是开源版,那么你只能使用邮箱密码的认证方式调用。 使用前请在程序的控制台>系统设置>站点设置中提前开启图床API功能

使用方法

任选一种自己喜欢的认证方式,然后把需要修改的参数改为自己的参数,直接复制,安装sharex点击 目标 > 自定义上传目标 将上方修改好的配置导入即可。 ShareX1.png

ShareX2.png

配置完成后,设置快捷键即可截图上传。

修改配置的参数说明:

RequestURL: 改成自己的图床上传api

token: 你的账户token值

mail: 你的登录邮箱

pass: 你的登录密码

source: 欲保存的存储源

方式一 token方式调用
{
"Version": "13.0.1",
"Name": "hellohao-token",
"DestinationType": "ImageUploader",
"RequestMethod": "POST",
"RequestURL": "你的api地址如http://server.wwery.com/api/uploadbytoken",
"Body": "MultipartFormData",
"Arguments": {
"token": "你的Token值如284564d1adcb48eb814e391e110ea555",
"source":例如:8
},
"FileFormName": "file",
"URL": "![]($json:data.url$)"
}
方式二 邮箱密码方式调用
{
"Version": "13.0.1",
"Name": "hellohao-mail",
"DestinationType": "ImageUploader",
"RequestMethod": "POST",
"RequestURL": "你的api地址如http://api.hellohao.cn/api/uploadbymail",
"Body": "MultipartFormData",
"Arguments": {
"mail": "邮箱如admin@163.cn",
"pass": "密码如admin",
"source":例如:8
},
"FileFormName": "file",
"URL": "![]($json:data.url$)"
}