Advertisement

halo博客搭建

阅读量:

前言:感谢halo官方,感谢那些有关halo博客搭建相关的文章,谢谢分享!

服务器环境:ubuntu 1804

一、安装java环境

更新软件包

#确保服务器的软件包是最新的

复制代码
    apt-get update -y

安装java环境

#安装openJRE

复制代码
    apt-get install openjdk-8-jre

#验证JRE是否安装成功

复制代码
    java -version

二、下载及修改配置文件

#配置文件内容解释

复制代码
 server:

    
   port: 8090  #port后面可以自定义端口
    
 # Gzip的功能设置,如果采用了nginx反向代理,默认开启了gzip,所以这里可以保持默认
    
   compression:
    
     enabled: false
    
 spring:
    
   datasource:
    
 # H2 数据库配置
    
     driver-class-name: org.h2.Driver
    
     url: jdbc:h2:file:~/.halo/db/halo
    
     username: ********  #修改数据库用户名
    
     password: ********  #修改数据库密码
    
  
    
 # H2数据库控制台配置
    
   h2:
    
     console:
    
       settings:
    
     web-allow-others: false
    
       path: /h2-console
    
       enabled: false
    
  
    
 halo:
    
 #后台管理的根路径,默认为admin
    
   admin-path: admin
    
 # 系统缓存形式配置,可选memory或者level,默认memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择level,则会将数据缓存到磁盘,重启不会清空缓存,如果不知道如何选择,建议默认
    
   cache: memory

三、测试halo

halo

Halo的所有附加文件都位于该Halo项目的专门存储区域中。必须确保该Halo配置文件夹的存在性,并包含所有博客相关的材料。

该Halo程序作为一个单独的可执行文件存储在任意目录中,并不包含用户的配置参数设置。因此,在任何位置上放置这个可执行文件都不会影响到其安全性能。由于它只是一个服务程序的存在,并不会对系统造成任何潜在威胁或风险

下载halo安装包

#下载最新的halo-latest.jar

复制代码
    wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

测试halo

#启动测试

复制代码
    Java -jar halo-latest.jar

看到halo has started successfully!说明配置正确。

开机自启halo

以上测试完成后,在SSH连接被关闭的情况下

#下载halo官方制定好的halo.service模板

复制代码
    curl -o /etc/systemd/system/halo.service --create-dirs http://halo.ryanc.cc/config/halo.service

#修改halo.service

复制代码
 [Unit]

    
 Description=Halo Service
    
 Documentation=https://halo.run
    
 After=network-online.target
    
 Wants=network-online.target
    
  
    
 [Service]
    
 Type=simple
    
 ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
    
 ExecStop=/bin/kill -s QUIT $MAINPID
    
 Restart=always
    
 StandOutput=syslog
    
  
    
 StandError=inherit
    
  
    
 [Install]
    
 WantedBy=multi-user.target

主要修改的地方就是YOUR_JAR_PATH,这里填写halo-latest.jar的绝对路径

#修改完halo.service文件之后,需要刷新systemd

复制代码
    Systemctl daemon-reload

#halo开机自启

复制代码
    Systemctl enable halo.service

#halo运行状态

复制代码
    service halo status

IP+端口测试访问

四、域名访问

前提:

确保域名已经成功解析到服务器IP,并确认服务器是否需要备案

检查服务器上的80、443、8090端口是否开放

域名解析

比如我的域名:www.epiol.top

我们发送完该域名后,在收到返回的IP地址时(此IP地址与我的服务器端口绑定),完成域名解析过程。

开放端口

在阿里云实例列表-更多-网络和安全组-安全组设置-配置防火墙规则,在入口方向修改防火墙规则,并开放服务器的所有入站流量,并指定允许通过的端口号为80、443和8090

安装nginx

#安装nginx

复制代码
    apt-get install nginx -y

访问http://服务器IP地址,出现nginx页面则表示正常

配置nginx域名访问

#修改nginx虚拟主机配置文件

cd /etc/nginx/sites-available/default

修改内容:

复制代码
 server {

    
     listen 80 ;
    
     root /var/www/html;
    
     index index.html index.htm index.nginx-debian.html;
    
     server_name 域名;
    
       
    
 }

#检查配置是否错误

复制代码
    nginx -t

#重载nginx配置

复制代码
    nginx -s reload

访问http://域名,出现nginx页面则表示正常

五、配置SSL证书

#去阿里云申请好证书后,上传至服务器

复制代码
 scp .pem文件绝对路径 root@服务器IP:/root

    
 scp .key文件绝对路径 root@服务器IP:/root

#将证书放入你想放的目录中

复制代码
 mv .pem文件 /etc/ssl/certs/.pem文件

    
 mv .key文件 /etc/ssl/private/.key文件

#修改虚拟主机配置文件

复制代码
 server {

    
     listen 443 ssl;
    
     root /var/www/html;
    
     index index.html index.htm index.nginx-debian.html;
    
     server_name 域名;
    
     ssl_certificate /etc/ssl/certs/.pem文件;
    
     ssl_certificate_key /etc/ssl/private/.key文件;
    
 }

#重复检查配置是否错误和重载nginx配置

访问https://域名,出现nginx页面则正确

六、nginx反向代理

#修改虚拟主机配置文件

复制代码
 server {

    
     listen 80 ;
    
     root /var/www/html;
    
     index index.html index.htm index.nginx-debian.html;
    
     server_name 域名;
    
  
    
     location / {
    
 	    proxy_set_header HOST $host;
    
     proxy_set_header X-Forwarded-Proto $scheme;
    
     proxy_set_header X-Real-IP $remote_addr;
    
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
     proxy_pass http://127.0.0.1:8090/;   
    
 }
    
     rewrite ^(.*) https://$host$1 permanent;  //重定向到https
    
  
    
  
    
 }
    
 server {
    
     listen 443 ssl;
    
     root /var/www/html;
    
     index index.html index.htm index.nginx-debian.html;
    
     server_name 域名;
    
     ssl_certificate /etc/ssl/certs/.pem文件;
    
     ssl_certificate_key /etc/ssl/private/.key文件;
    
  
    
     location / {
    
     proxy_set_header HOST $host;
    
     proxy_set_header X-Forwarded-Proto $scheme;
    
     proxy_set_header X-Real-IP $remote_addr;
    
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
     proxy_pass http://127.0.0.1:8090/;   //跳转到8090端口
    
 }
    
 }

访问域名,直接到达halo博客初始化页面,至此halo的搭建全部完成了!

我的博客,欢迎访问!

全部评论 (0)

还没有任何评论哟~