配置域名访问
写在前面
- 假设你已经成功配置并运行好了 Halo,且不是使用 80 端口运行。
- 请确保域名已经成功解析到服务器 IP,并确认服务器是否需要备案。
- 请检查服务器的 80 和 443 端口是否开放。
- 如 3 所述,如果你使用了类似
宝塔面板
之类的 Linux 管理面板,可能还需要在面板里设置端口。 - 并不一定要求按照下列教程操作,这里仅仅以供参考。
- 如 2 所述,你需要做的仅仅是反向代理 Halo 运行端口,并配置 SSL 证书而已,所以并不要求配置方式。
使用 Nginx 进行反向代理
安装 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://dl.halo.run/config/nginx.conf
下载完成之后,我们还需要对其进行修改
# 使用 vim 编辑 halo.conf
vim /etc/nginx/conf.d/halo.conf
打开之后我们可以看到
server {
listen 80;
server_name example.com www.example.com;
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
改为自己的域名。
修改完成之后
# 检查配置是否有误
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
到这里,关于 Nginx 的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。
在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。
或者使用 Caddy 进行反向代理
Caddy
是一款使用 Go
语言开发的 Web
服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。
安装 Caddy
# 安装 Caddy 软件包
yum install caddy -y
配置 Caddy
# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://dl.halo.run/config/Caddyfile
下载完成之后,我们还需要对其进行修改。
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf
打开之后我们可以看到
https://www.simple.com {
gzip
tls [email protected]
proxy / localhost:port {
transparent
}
}
- 请把
https://www.simple.com
改为自己的域名。 tls
后面的[email protected]
改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 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
会出现该问题。
进阶设置
多网址重定向到主网址,比如访问 simple.com
跳转到 www.simple.com
应该怎么做呢?
# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf
打开之后我们在原有的基础上添加以下配置
https://simple.com {
redir https://www.simple.com{url}
}
将 https://simple.com
和 https://www.simple.com{url}
修改为自己需要的网址就行了,比如我要求访问 ryanc.cc
跳转到 www.ryanc.cc
,完整的配置如下:
https://ryanc.cc {
redir https://www.ryanc.cc{url}
}
https://www.ryanc.cc {
gzip
tls [email protected]
proxy / localhost:8090 {
transparent
}
}
最后我们重启 Caddy
即可。
到这里,关于 Caddy
反向代理的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo
的初始化了。
在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。