配置域名访问

写在前面

  • 假设你已经成功配置并运行好了 Halo,且不是使用 80 端口运行。
  • 请确保域名已经成功解析到服务器 IP,并确认服务器是否需要备案。
  • 请检查服务器的 80 和 443 端口是否开放。
  • 如 3 所述,如果你使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里设置端口。
  • 并不一定要求按照下列教程操作,这里仅仅以供参考。
  • 如 2 所述,你需要做的仅仅是反向代理 Halo 运行端口,并配置 SSL 证书而已,所以并不要求配置方式。

使用 Nginx 进行反向代理

安装 Nginx

  1. # 添加 Nginx 源
  2. sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  3. # 安装 Nginx
  4. sudo yum install -y nginx
  5. # 启动 Nginx
  6. sudo systemctl start nginx.service
  7. # 设置开机自启 Nginx
  8. sudo systemctl enable nginx.service

配置 Nginx

  1. # 下载 Halo 官方的 Nginx 配置模板
  2. curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf

下载完成之后,我们还需要对其进行修改

  1. # 使用 vim 编辑 halo.conf
  2. vim /etc/nginx/conf.d/halo.conf

打开之后我们可以看到

  1. server {
  2. listen 80;
  3. server_name example.com www.example.com;
  4. location / {
  5. proxy_set_header HOST $host;
  6. proxy_set_header X-Forwarded-Proto $scheme;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9. proxy_pass http://127.0.0.1:8090/;
  10. }
  11. }

注意:请把 example.com 改为自己的域名。

修改完成之后

  1. # 检查配置是否有误
  2. sudo nginx -t
  3. # 重载 Nginx 配置
  4. sudo nginx -s reload

配置 SSL 证书

在这里我只演示如果自动申请证书,如果你自己准备了证书,请查阅相关教程。

  1. # 安装 certbot 以及 certbot nginx 插件
  2. sudo yum install certbot python2-certbot-nginx -y
  3. # 执行配置,中途会询问你的邮箱,如实填写即可
  4. sudo certbot --nginx
  5. # 自动续约
  6. sudo certbot renew --dry-run

到这里,关于 Nginx 的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。

或者使用 Caddy 进行反向代理

Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。

安装 Caddy

  1. # 安装 Caddy 软件包
  2. yum install caddy -y

配置 Caddy

  1. # 下载 Halo 官方的 Caddy 配置模板
  2. curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://dl.halo.run/config/Caddyfile

下载完成之后,我们还需要对其进行修改。

  1. # 使用 vim 编辑 Caddyfile
  2. vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们可以看到

  1. https://www.simple.com {
  2. gzip
  3. tls [email protected]
  4. proxy / localhost:port {
  5. transparent
  6. }
  7. }
  • 请把 https://www.simple.com 改为自己的域名。
  • tls 后面的 [email protected] 改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 SSL 证书,而且会自动帮你续签。
  • localhost:port 请将 port 修改为 Halo 的运行端口,默认为 8090。修改完成之后启动 Caddy 服务即可。
  1. # 开启自启 Caddy 服务
  2. systemctl enable caddy
  3. # 启动 Caddy
  4. service caddy start
  5. # 停止运行 Caddy
  6. service caddy stop
  7. # 重启 Caddy
  8. service caddy restart
  9. # 查看 Caddy 运行状态
  10. 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 应该怎么做呢?

  1. # 使用 vim 编辑 Caddyfile
  2. vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们在原有的基础上添加以下配置

  1. https://simple.com {
  2. redir https://www.simple.com{url}
  3. }

https://simple.comhttps://www.simple.com{url} 修改为自己需要的网址就行了,比如我要求访问 ryanc.cc 跳转到 www.ryanc.cc,完整的配置如下:

  1. https://ryanc.cc {
  2. redir https://www.ryanc.cc{url}
  3. }
  4. https://www.ryanc.cc {
  5. gzip
  6. tls [email protected]
  7. proxy / localhost:8090 {
  8. transparent
  9. }
  10. }

最后我们重启 Caddy 即可。

到这里,关于 Caddy 反向代理的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。