添加站点并配置 Nginx

  1. 点击左侧的 网站 菜单项,点击 添加站点 按钮。

需要填写的表单信息如下:

  • 域名:填写您已经解析到当前服务器公网 IP 的域名。

  • PHP版本:纯静态

填写完成之后点击 提交 按钮即可。

  1. 设置 SSL

信息

在配置反向代理之前,我们推荐先设置好 SSL 证书。

  • 可选择 宝塔 SSL 或者 Let's Encrypt 进行证书申请。

  • 需要开启右上角的 强制 HTTPS

  1. 修改配置文件

在根节点添加:

upstream halo {
    server 127.0.0.1:8090;
}

其中的 8090 为 Halo 的运行端口,请按需修改。

在 server 节点添加:

location / {
    proxy_pass http://halo;
    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;
}

修改 server 节点中的 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 节点:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
    proxy_pass http://halo;
    expires      30d;
    error_log /dev/null;
    access_log off;
}

修改 server 节点中的 location ~ .*\.(js|css)?$ 节点:

location ~ .*\.(js|css)?$
{
    proxy_pass http://halo;
    expires      12h;
    error_log /dev/null;
    access_log off; 
}

完整配置文件示例(仅包含关键部分):

upstream halo {
    server 127.0.0.1:8090;
}
server
{
    ...
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        proxy_pass http://halo;
        expires      30d;
        error_log /dev/null;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        proxy_pass http://halo;
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }
    
    location / {
        proxy_pass http://halo;
        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;
    }

    ...
}

随后点击保存即可。如果配置不生效,请重载 Nginx 或者 重启 Nginx。

最后,访问域名即可进行 Halo 的初始化。