部署该博客

该项目的官网:http://halo.run

一、下载

二、运行

1.试运行
java -jar halo.jar
2.挂载到后台

使用nohup工具。nohup = no hang up,即表示不挂断的运行。

格式为: nohup [Command] &

nohup java -jar halo.jar > nohup.out 2>&1 &
解释:

nohup.out 表示将运行的信息输出到nohup.out里面
2>&1 表示将标准错误(2)重定向到标准输出(&1)中
& 指在后台运行


attention
nohup [Command] | 将该任务挂载到后台,关闭标准输入(终端不会在接受任何输入)
---|---:|
nohup [Command] & | `将该任务挂载到后台,但是依然可以使用标准输入
3.使用nginx配置反向代理
为了和之前部署的一个导航页分开,使用nginx配置该项目

http {
    ...
    server {
        ...
        location / {
            proxy_pass http://xxx:8090;
        }
        location /xxx {
            proxy_pass htpp://xxx:xxx;
        }
    }
}

配置成功后,发现其中一个项目无法正常浏览,具体表现为静态文件无法加载(404 Not Found)。
解决方法: 在server块中加入以下内容:

location ~ .* {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

具体为什么,我也没搞清楚。不过加上这个后问题得以解决。。。
参考链接

三、halo

  • halo的数据库是用的H2,所以一切物理文件都在~/.halo里面,以后做迁移可以直接备份该文件。

四、过程中擦边的小知识

  • 通过shell获取相关进程
    pgrep -f name 获取该名的pid进程
    pkill -f name 找到该名的进程并杀掉
    Bash Shell 获取进程 PID
  • 复习
    ① 创建文件夹 mkdir folder-name
    ② 创建文件 touch filename
    ③ 删除文件夹 rm -r folder-name -r表示强制删除
    ④ 删除文件 rm -f filename -f表示不提示
    ⑤ vi 进入编辑模式 i
    ⑥ vi 退出编辑模式 ESC
    ⑦ vi 保存并退出 :wq!
    ⑧ vi 强制退出 :q!
    ⑨ 查看相关进程 ps -ef | grep name
    ⑩ 关闭相关进程 kill -9 pid pid是查到的进程号
    2020-3-15

vi 删除光标到末尾的内容 :.,$d
2020-3-16