配置Nginx
这里为了配置方便使用了Halo官方的配置。
安装Nginx
# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 Nginx
sudo yum install -y nginx
# 启动 Nginx
sudo systemctl start nginx.service
# 设置开机自启 Nginx
sudo systemctl enable nginx.service
配置Nginx
# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/nginx.conf
防止小伙伴无法科学上网。可以拷贝一下内容到/etc/nginx/conf.d/halo.conf中。
server {
listen 80;
server_name example.com www.example.com;
client_max_body_size 1024m;
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/;
}
}
注意:请把 example.com 改为自己的域名。
重载Nginx
# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload
配置SSL证书
这里是自动申请并配置证书。
# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y
# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx
# 自动续约
sudo certbot renew --dry-run
在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功
使用Caddy
Caddy
是一款使用Go
语言开发的Web
服务器。其配置更为简洁,并可以自动申请及配置 SSL
证书。
这里为了配置方便使用了Halo官方的配置。
安装Caddy
# 安装 Caddy 软件包
yum install caddy -y
配置Caddy
# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/Caddyfile
配置内容:
https://www.simple.com {
gzip
tls xxxx@xxx.xx
proxy / localhost:port {
transparent
}
}
# 请把 https://www.simple.com 改为自己的域名。
# tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书。
# localhost:port 请将 port 修改为 Halo 的运行端口,默认为 8090。
操作Caddy
# 开启自启 Caddy 服务
systemctl enable caddy
# 启动 Caddy
service caddy start
# 停止运行 Caddy
service caddy stop
# 重启 Caddy
service caddy restart
# 查看 Caddy 运行状态
service caddy status
如果
Caddy
启动出现诸如[/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service'
这样的问题,请使用yum update -y
更新系统。 然后再使用service caddy restart
重启。 已知CentOS 7.3
会出现该问题。
Caddy进阶设置
多网址重定向到主网址,比如访问 simple.com
跳转到 www.simple.com
应该怎么做呢?
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf
修改配置:
# 打开之后我们在原有的基础上添加以上配置
# 将 https://simple.com 和 https://www.simple.com{url}
# 修改为自己需要的网址就行了,
# 比如我要求访问 ryanc.cc 跳转到 www.ryanc.cc,
# 完整的配置如下:
http://ryanc.cc {
redir https://www.ryanc.cc{url}
}
https://www.ryanc.cc {
gzip
tls i@ryanc.cc
proxy / localhost:8090 {
transparent
}
}
最后重启Caddy
即可。
修改不是Https的链接
修改域名为Https
链接后,如果包含Http
链接,同样会被不认为是安全链接。
修改七牛云域名配置
需要下图的
协议
为HTTPS
如果您还是
HTTP
可以修改下图配置来设置HTTPS
修改数据库
由于文章等内容的图片路径为绝对路径,所以在更换域名之后,可能会造成部分资源无法正常显示,所以需要去数据库全局替换一下域名。
登录到服务器,使用 vim 打开配置文件:
vim ~/.halo/application.yaml
修改内容如下:
h2:
console:
settings:
web-allow-others: true
path: /h2-console
enabled: true
也就是将
web-allow-others
和enabled
的false
改为了true
改完之后重启 Halo。
接着访问
ip:端口/h2-console
即可登录到控制台,输入配置文件的JDBC
,NAME
,PASSWORD
进行连接H2,执行以下 SQL 语句即可。
UPDATE OPTIONS SET OPTION_VALUE = replace(OPTION_VALUE , '旧域名','新域名') ;
UPDATE COMMENTS SET AUTHOR_URL = replace(AUTHOR_URL , '旧域名','新域名') ;
UPDATE PHOTOS SET THUMBNAIL = replace(THUMBNAIL , '旧域名','新域名') ;
UPDATE PHOTOS SET URL = replace(URL , '旧域名','新域名') ;
UPDATE POSTS SET FORMAT_CONTENT = replace(FORMAT_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET ORIGINAL_CONTENT = replace(ORIGINAL_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET THUMBNAIL = replace(THUMBNAIL, '旧域名','新域名') ;
UPDATE THEME_SETTINGS SET SETTING_VALUE = replace(SETTING_VALUE, '旧域名','新域名') ;
Q.E.D.