×

1小时搞定!Halo博客广告收益日进美金实操指南

hqy hqy 发表于2025-07-07 23:39:42 浏览8 评论0

抢沙发发表评论

今天分享怎么在自己的个人博客网站接入广告赚美金。

Halo搭建部署

需要准备

Centos版本Linux服务器1台

安装Docker

  1. 卸载旧版本

    sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine
  2. 安装yum工具包

    sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装docker引擎

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  4. 启动docker

    sudo systemctl start docker
  5. 配置国内镜像源

    sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{    "registry-mirrors": [         "https://dockerproxy.net",         "https://mirror.ccs.tencentyun.com",         "https://registry.cn-hangzhou.aliyuncs.com",         "https://docker.mirrors.ustc.edu.cn",         "https://hub-mirror.c.163.com",         "https://docker.m.daocloud.io",         "https://docker.chenby.cn",         "http://mirror.azure.cn",         "https://dockerpull.org",         "https://docker.ketches.cn",         "https://docker.xuanyuan.me"    ]}EOF
  6. 重启docker服务

    sudo systemctl daemon-reloadsudo systemctl restart docker

安装Docker Compose

sudo yum updatesudo yum install docker-compose-plugin

部署Halo

在服务器上创建一个目录

mkdir ~/halo && cd ~/halo

下面内容中“外部访问地址”localhost替换为自己服务器的公网ip,然后执行下面命令

sudo tee ~/halo/docker-compose.yaml <<-'EOF'services:  halo:    image: registry.fit2cloud.com/halo/halo:2.17    restart: on-failure:3    depends_on:      halodb:        condition: service_healthy    networks:      halo_network:    volumes:      - ./halo2:/root/.halo2    ports:      - "8090:8090"    healthcheck:      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]      interval: 30s      timeout: 5s      retries: 5      start_period: 30s    command:      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo      - --spring.r2dbc.username=root      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。      - --spring.r2dbc.password=o#DwN&JSa56      - --spring.sql.init.platform=mysql      # 外部访问地址,请根据实际需要修改      - --halo.external-url=http://localhost:8090/  halodb:    image: mysql:8.1.0    restart: on-failure:3    networks:      halo_network:    command:       - --default-authentication-plugin=caching_sha2_password      - --character-set-server=utf8mb4      - --collation-server=utf8mb4_general_ci      - --explicit_defaults_for_timestamp=true    volumes:      - ./mysql:/var/lib/mysql      - ./mysqlBackup:/data/mysqlBackup    healthcheck:      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]      interval: 3s      retries: 5      start_period: 30s    environment:      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值      - MYSQL_ROOT_PASSWORD=o#DwN&JSa56      - MYSQL_DATABASE=halonetworks:  halo_network:EOF

启动halo

基于docker-compose编排了halo mysql 容器,并后台启动

docker compose up -d

访问halo控制台

http://你的服务器公网ip:8090/console/

安装Nginx Proxy Manager 反向代理你的博客(通过域名访问你的博客)

创建一个 npm 的文件夹

mkdir -p ~/data/docker_data/nginxproxymanager

进入该文件夹

cd ~/data/docker_data/nginxproxymanager

创建compose脚本文件

sudo tee ~/data/docker_data/nginxproxymanager/docker-compose.yml <<-'EOF'services:  app:    image: 'jc21/nginx-proxy-manager:2.9.18'    restart: unless-stopped    ports:      - '80:80'              # 不建议修改端口      - '81:81'              # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口      - '443:443'            # 不建议修改端口    volumes:      - ./data:/data         # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建      - ./letsencrypt:/etc/letsencrypt  # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建EOF

启动

docker compose up -d

进入后台

访问http://你的服务器公网ip:81 就可以访问 NPM 的网页端了。(记得服务器安全组打开81端口) 默认登录的用户名:admin@example.com 密码:changeme,登录后提示修改密码

配置 Halo 的反向代理

进入Nginx Proxy Manager http://你的服务器公网ip:81

点击按钮 Hosts,点击按钮Proxy Hosts,点击按钮Add Proxy Hosts,弹出弹窗

img_105.png

Domain Names :填我们 Halo 网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上

Scheme :默认 http 即可,除非你有自签名证书

Forward Hostname/IP :填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)

Forward Port:填入 Halo 映射出的端口,这边默认是 8090

Cache Assets :缓存,可以选择打开

Block Common Exploits: 阻止常见的漏洞,可以选择打开

Websockets Support :WS 支持,可以选择打开


Access List: 这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。

一键申请 SSL 证书

编辑刚才添加的proxy host


申请证书需要你提前将域名解析到 NPM 所在的服务器的 IP 上;

如果你使用的是国内的服务器,默认 80 和 443 端口是关闭的,你需要备案之后才能使用;

如果你使用了 CloudFlare 的 DNS 服务,记得把小黄云关闭(即不开启 CDN)。

不出意外,你将成功申请到 SSL 证书,证书会三个月自动续期。

再次点开配置,查看一下,将强制 SSL 打开

Halo博客使用百度统计网站统计,监控访问量pv uv

百度统计网址:https://tongji.baidu.com/web5/welcome/login

  1. 注册
  2. 选择 站长版
  3. 填写账户信息
  4. 登录账户
  5. 进入产品

点击使用设置,新建站点


填写完信息,复制js代码


到halo博客的全局head标签

检测

自动检查有点问题,可以手动检查

Halo免费使用又拍云CDN加速网站

加速前:

加速后:

准备

国内已经备案超过2天的域名

注册又拍云账号

https://console.upyun.com/register/ 

创建服务

登陆到控制台:https://console.upyun.com/dashboard/

菜单栏:云产品->CDN

然后点击创建服务按钮

加速域名示例:www.zxalive.com 或者 zxalive.com 或者blog.zxalive.com


域名绑定

https://console.upyun.com/services/  替换成你上面填写的服务名称/domainsCdn/

点击域名绑定按钮,绑定之后大概1小时通过审核。


审核后CNAME解析


配置参数全程跟随

https://console.upyun.com/services/  替换成你上面填写的服务名称/cacheCdn/

参数跟随,选择全程跟随

Https证书免费申请和配置

申请 https://console.upyun.com/toolbox/ssl/  大概1日内通过

配置

https://console.upyun.com/services/  替换成你上面填写的服务名称/httpsCdn/

选择刚刚申请通过的证书

领取优惠券(或充值)

加入又拍云联盟,免费使用cdn服务:https://www.upyun.com/league

到账后状态使用中就可以了。https://console.upyun.com/billing/vouchers/


3分钟将你的网站接入Google Asd广告赚美元~

注册ads账号

https://adsense.google.com/start/  外网,可能需要依法访问。

用谷歌账号在右上角 sign up 按钮点击登陆。如何注册新的ads账号,如下截图:



填写个人住址,支付信息

点击输入信息按钮,一步一步填写

设置广告位置

审核

js脚本复制到网站中每个网页上的 和 标记之间。halo博客可以看下面第二张图全局设置,记得保存:

设置完后点击:申请审核按钮


需要2-4周时间:

部署ads.txt文件(必须)


创建目录

mkdir /root/halo/halo2/static

将文件放入目录

检查


google更新ads检测



Google AdSense 集成 Google Analytics


没有analytics账号?去注册:https://marketingplatform.google.com/about/analytics/

右上角点击1处,一步一步注册就好


将js代码注入到自己的网站需要分析的页面中,取决于你用的cms管理框架,我这里用的halo,见下图二。一般cms都有全局js代码注入功能。


注入halo:


halo-theme-earth不同配色下使用不同logo

第一步:改main.ts

/theme-earth/src/main.ts

加3处代码,如图所示,代码在图的下面。


updateLogo(prefersDark);updateLogo(colorScheme === "dark");/* 修改logo */exportfunction updateLogo(isDark: boolean) {console.log('Updating logo image...');var logoImg = document.getElementById('header-logo') as HTMLImageElement;/* 在halo后台附件上传好要用的logo图片。        黑色模式下:用logo-dark.webp图片 白色模式下:用logo-light.webp图片*/  logoImg.src = isDark ? '/upload/logo-dark.webp' : '/upload/logo-light.webp';console.log('Logo image src set to:', logoImg.src);}

第二步:修改header.html

/theme-earth/templates/modules/header.html

img标签里面加上id=“header-logo” 即可


第三步:刷新主题缓存


第四步:如果你的halo装了本地静态缓存插件,需要刷新缓存

Halo-Joe3主题-优化-删除Powered by-删除Theme by

在服务器上找到主题文件夹,用SFTP工具下载到本地


全局搜索关键词,或者按照目录结构找到footer.html文件


将选中的th标签删除


Halo-Joe3主题-优化-减少http请求

删除我选中的


解决Halo-Joe3主题-暴露ip地址

点击这里之后地址栏显示ip访问


修改docker-compose.yaml文件


然后重新构建容器

docker compose up -d

反复查看容器状态,等到显示healthy就可以访问了

docker ps





打赏

本文链接:https://www.kinber.cn/post/5236.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客