• 搜索
  • 夜间模式
    ©2026  依刻学习 Theme by OneBlog

    依刻学习博客

    搜索
    标签
  • 首页>
  • 学习的一天>
  • 正文
  • 依刻学习网站优化

    2025年03月24日 11 阅读 0 评论 4549 字

    前言

    关于本网站的优化,很早之前就想做了,但是因为有更重要的知识没有学习一直拖着,最近准备面试,准备将本博客网站升级一下

    配置HTTPS

    这个配置之前一直没搞,因为权威性的CA机构证书太贵了,并且需要填写单位,不是给个人网站申请的,最近研究一下,发现还有其他机构的DV证书比较便宜,发放也比较快

    1.购买DV证书
    点击跳转JOY SSL,当然还有更权威的机构,例如digicert中国,Sectigo‌等等,这个是找到的比较实惠的DV证书

    2.填写域名信息
    DV证书之所以快,是因为它只需要验证域名的所有权,所以需要填写域名
    由于购买的是单域名,所以只能够为一个域名添加证书

    可以看见这里虽然只有wym2king.cn,其实就是www.wym2king.cn(浏览器会自动添加www,也就是顶级域名+一个www子域名都能够设置https连接),但是如果是其他例如test.wym2king.cn就只能为这个子域名test设置https连接,无法为顶级域名设置https连接

    3.填写单位信息
    这个单位信息可以填网站的信息,因为是DV证书,验证不严格,实际上不会验证有没有这个单位,但是其他信息需要与域名持有人的信息尽可能相同

    4.验证签发
    其实就是证明你拥有这个域名,有两种方式证明,一个是通过DNS解析证明,一个是通过配置云主机(因为域名是绑定公网IP的,等同于绑定这个云主机),这里选择DNS解析

    通过在域名管理平台(购买域名的地方)添加解析,我购买域名的地方是阿里云,所以去阿里云云平台添加TXT解析,这里是一一对应的,复制往里面贴就行了

    配置域名

    这里需要添加刚刚在DV证书配置的域名,类型选择A,记录值就是云服务器的公网IP

    需要注意的是,DNS是有缓存的,需要等缓存过期DNS才会加载新的解析,也就是说这个解析配置是无法立即生效的,需要等1-2分钟

    5.下载证书
    一旦配置完毕,就可以从CA机构网站下载证书

    6.配置nginx证书

    #创建证书目录
    mkdir /etc/nginx/cert
    #将DV证书中的nginx证书复制到该目录中

    考虑到安全因素,这里仅给出一部分server的https配置

    #只需要配置证书中的域名server,其他不要配置,否则访问会显示危险连接,就是证书错误,因为证书中没有这个域名
    server {
      # 启⽤ HTTPS 协议
      listen 443 ssl; 
      # 这里可以配置多个域名,但是只能有证书中有的
      server_name wym2king.cn www.wym2king.cn; 
      # 证书位置
      ssl_certificate /etc/nginx/cert/wym2king.cn.crt;
      ssl_certificate_key /etc/nginx/cert/wym2king.cn.key;
      ssl_session_timeout 5m;
      # 设置会话缓存以提⾼性能
      ssl_session_cache shared:MozSSL:10m; 
      # 配置加密算法
      ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCMSHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSAAES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; 
      # 配置加密协议
      ssl_protocols TLSv1.2 TLSv1.3; 
      ssl_prefer_server_ciphers on;
      location / {
        # 配置root路径
        root /;
        index index.html index.htm;
        # 如果找不到⽂件或⽬录,则返回 404 错误
        try_files $uri $uri/ =404; 
      }
      # 开启 HSTS
      add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; 
      # 防⽌点击劫持
      add_header X-Frame-Options DENY; 
      # 防⽌ MIME 类型嗅探
      add_header X-Content-Type-Options nosniff; 
      # 防⽌ XSS 攻击
      add_header X-XSS-Protection "1; mode=block";
    
      #其他网站配置略
    }

    7.重启nginx

    systemctl restart nginx

    8.更换https导致的问题
    更换https导致我的网站能访问,但是原本的CSS结构都失效了,查看网络信息发现css全部请求到了原本的域名(即没有证书的http域名),但原来的域名已经被我修改为https,当然找不到了,只需要在网站后台修改网站的域名即可

    这个域名配置是专门由于请求静态资源,例如css,img等等
    至此DV证书配置完成

    9.定时备份脚本

    vim /app/data/backup_typecho.sh
    
    #!/bin/bash
    #author: YK
    #desc: backup typecho through mysql
    #version: v1
    
    
    # MySQL数据库配置
    DB_HOST="<host>"
    DB_USER="<user>"
    DB_PASSWORD='<passwd>'
    DB_NAME="<db_name>"
    
    # 备份配置
    BACKUP_DIR="<dir>"
    #保留时间
    KEEP_DAYS=30
    MAIL_NAME='<xxx@xxx.com>'
    TIMESTAMP=$(date +%Y%m%d_%H%M%S)
    BACKUP_FILE="${BACKUP_DIR}/typecho_${TIMESTAMP}.sql.zip"
    OK_TIP="完成typecho备份"
    #注意这里的!会被bash翻译为前一个命令
    NO_OK_TIP="\!\!没有完成typecho备份\!\!"
    
    # 创建备份目录
    mkdir -p "${BACKUP_DIR}"
    
    # 执行数据库备份并压缩
    echo "备份数据"
    #使用zip可以直接压缩,不用删除输出的备份,如果使用tar需要多一步删除
    mysqldump -h${DB_HOST} -u${DB_USER} -p${DB_PASSWORD} --single-transaction ${DB_NAME} | gzip   > ${BACKUP_FILE}
    
    # 检查备份是否成功
    if [ $? -eq 0 ]; then
      echo "${OK_TIP}-->${BACKUP_FILE}" | mailx -s "${OK_TIP}"  ${MAIL_NAME}  &> /dev/null
    else
      echo "${NO_OK_TIP}" | mailx -s "${NO_OK_TIP}"  ${MAIL_NAME}  &> /dev/null
      #失败时不删除过期备份,直接退出
      exit 1
    fi
    
    # 删除过期备份,通过find查找指定修改时间的备份压缩文件
    echo "清除备份"
    find "${BACKUP_DIR}" -name "typecho_*.sql.gz" -mtime +${KEEP_DAYS} -delete
    
    chmod a+x  /app/data/backup_typecho.sh
    crontab -e 
    
    0 4 */7 * *  /app/data/backup_typecho.sh  &>/dev/null
    
    #每隔7天的凌晨4点开始备份

    注意点

    • 请先配置邮箱的SMTP mailx配置qq邮箱SMPT
    • 修改脚本的配置,改成适合自己mysql的

    总结

    nginx的https配起来没什么难度,2-3个小时内基本上完成,大部分时间还花在购买DV证书上,第一次买确实不太熟悉

    本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.034 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。