持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
前言
其实一直都是想着做一个相册集,存放自己手机里面的图片,但是奈何自己技术不够,没有办法搭建出。 使用别人的图床要么限制网速要么付费,而且不知道什么时候久跑路了 偶然的今天在群里看到一个还不错的图床网站,经过一波三折,终于问到了源码 源码来自于一位github上一位名叫HelloHao大佬的开源代码
大佬已经将源码打包好了,分别是开源版和Core版(付费版),虽然是有开源版,但是如果要商用,还是要跟大佬进行联系商谈的,但是我是属于自己用,也就自己拿就行。
目录:
1、开源版 2、付费版 3、Screen 4、报错及解决
开源版
开源版又分为一键部署和自定义部署,本文使用的是自定义部署,即前后端分离部署,现将部署过程中遇到的问题和解决办法进行总结
下载好压缩包,上传到云服务器中的目录中(视自己情况而定,一般放在/www/wwwroot)中,解压会得到Tbed的文件夹,文件夹内的样式如图
根据安装教程将源码部署好即可
说明:
(1)后端根据教程打开在/Tbed/server中的application.properties
其他内容根据教程填写即可,但是在这个CROS_ALLOWED_ORIGINS需要填写自己的前端域名,例如我的相册集前端域名是[xxx.top][3],那么这里就应该填写成CROS_ALLOWED_ORIGINS= http://xxx.top,此次后端的部署就算完成了。
然后再去运行命令java -server -Xms256m -Xmx256m -jar Tbed.jar即可
(2)前端基本没什么要改的,唯一就是要将serverhost的值设置好就行,这个值是后端的域名,例如"serverHost": "http://xxxxx.com"。然后在shell中运行起来即可。
(3)Nginx反向代理配置
首先进入nginx.conf找到server,将以下代码复制到server的后面
server
{
listen 80;//域名都是监听80端口
server_name xxxxx.com; //前端的域名
location / {
root /www/wwwroot/Tbed/web/webapps; //前端web项目的路径(在index.html的上一层)
index index.html index.htm; //照抄
try_files $uri $uri/ /index.html; //照抄
}
}
server
{
listen 80; //域名都是监听80端口
server_name xxxxxx.com; //后端的域名
location / {
proxy_pass http://127.0.0.1:10088; //后端地址指向的地址,端口要根据application.properties处的port定
}
}
保存文件,然后重启nginx后,即可用域名访问进到相册集
Core版
话不多说,直接上手Core版,要想将相册分享出去,只能是使用Core版本,本次也是采用前后端分离部署
1、购买Core后,记住填写的服务端域名(后端),下载最新版本的Core分离部署的压缩包
2、将压缩包上传到服务器中,我这边还是放在www/wwwwroot下面(随自己的兴趣哈)。
3、解压压缩包,并且进入到/server下找到hallohao这个文件,将权限更改为777即可。
4、编写application.properties文件,将按照提示输入前端域名:记得带上http://或者https://
5、在web目录下,进入到webapps/hellohao中,在confjson中,填入购买Core时填写的域名:记得带上http://或者https://
6、在Nginx中进行反向代理的设置:找到Nginx的nginx.conf文件
7、将以下代码复制到第一个server后面
server
{
listen 80;
server_name xxxxx.com; //前端的域名
location / {
root /www/wwwroot/xxx/web/webapps;//前端web项目的路径(在index.html的上一层)
index index.html index.htm; //照抄
try_files $uri $uri/ /index.html; //照抄
}
}
server
{
listen 80;
server_name xxxxx.com; //后端的域名
location / {
proxy_pass http://xxxxx.com:10088; //Core版绑定的后端域名,port根据application.properties定
}
}
8、将Nginx重启下 9、在service目录下验证(输入命令):
./hellohao java -server -Xms256m -Xmx256m -jar TbedCore
,启动成功后,在cd到web目录下,输入命令:
./start.sh
10、在浏览器中输入前端域名,查看是否能进入前端,再看是否报请求服务器错误
screen
这个是用来解决关闭终端(shell)后,后端也关闭的情况
前提:如果后端已经开启的情况使用kill -9 PID杀死进程
(PID查询使用lsof -i:10088)
1、先安装screen
yum install screen
安装完后,直接输入
screen
会进入到新的窗口,在新窗口中cd到后台目录server下,运行命令:
./hellohao java -server -Xms256m -Xmx256m -jar TbedCore
等待启动,启动后就可以了
2、退出和进入
(1)进入Screen
当我们需要再次进入Screen的时候,在终端输入Screen -ls命令,查看项目对应的ID,然后输入Screen -R ID
(2)推退出Screen
暴力退出:直接断开Shell连接 优雅退出:使用快捷键“ctrl+A”按完后,再按下“ctrl+D”就可以优雅的退出到命令行啦
报错及解决:
1、强烈建议前后端用不同的域名(一个主域名一个二级域名,或者两个二级域名),不要用127.0.0.1或者localhost
2、报请求服务器错误就是前端设置服务器没有设置好或者Nginx的反向代理没对
3、本文所有端口请根据实际填写来确定
4、开源版本升级Core版本后,相册数据的迁移可以使用Navicat Premuim的工具-数据同步
根据自己实际步骤所记录,如果不对,还请指出,万分感谢