vercel和supabase安装配置typecho

降低延迟

之前的延迟情况全屏幕飘红
现在的延迟情况,变绿很多
nbook003.png

  • 解决方法1:将vercel和supabase部署到同一个地区。
    vercel选择部署到新加坡,因为supabase部署在新加坡。
    nbook008.png
  • 解决方法2:优化vercel配置。
    更新了 vercel.json 文件,添加了缓存配置。以下是我所做的更改:
    静态资源缓存配置(一个月) :
       - 为所有静态资源(js、css、图片、字体等)添加了一个月(2592000秒)的强制缓存
       - 添加了 immutable 标记,表示这些资源在缓存期内不会改变
       - 分别为主题、插件、管理后台和其他静态资源配置了缓存规则
    动态页面缓存配置(10分钟弱缓存) :
       - 为所有其他请求(包括文章、列表页和后台页面)添加了10分钟(600秒)的缓存
       - 这是一个弱缓存,意味着:
         - 用户首次访问后,10分钟内重复打开会直接使用本地缓存
         - 10分钟后再访问,浏览器会自动验证服务器是否有新内容
    {
        "installCommand": "git submodule update --init --recursive",
        "functions": {
            "api/index.php": {
                "runtime": "vercel-php@0.7.4"
            }
        },
        "routes": [
            {
                "src": "/usr/(themes|plugins)/(.*\\.(js|css|png|jpg|jpeg|gif|svg|ico|ttf|eot|woff|woff2))$",
                "dest": "/api/index.php",
                "headers": {
                    "Cache-Control": "public, max-age=2592000, immutable"
                }
            },
            {
                "src": "/(admin|var)/(.*\\.(js|css|png|jpg|jpeg|gif|svg|ico|ttf|eot|woff|woff2))$",
                "dest": "/api/index.php",
                "headers": {
                    "Cache-Control": "public, max-age=2592000, immutable"
                }
            },
            {
                "src": "/(.*\\.(js|css|png|jpg|jpeg|gif|svg|ico|ttf|eot|woff|woff2))$",
                "dest": "/api/index.php",
                "headers": {
                    "Cache-Control": "public, max-age=2592000, immutable"
                }
            },
            {
                "src": "/(.*)",
                "dest": "/api/index.php",
                "headers": {
                    "Cache-Control": "public, max-age=600, stale-while-revalidate=86400"
                }
            }
        ]
    }
    

问题

  • 延迟过高,页面可以正常加载,加载速度感人
  • 优化了连接速度
  • 测试: 点击

注意

注意supabase和vercel部署到同一个地区。

注册配置supabase

  • 访问supabase官网,点击“开始”按钮。
    注册supabase
  • 注册账号,填写邮箱、密码、用户名等信息。
  • 验证邮箱,登录账号。
  • 创建新项目,选择免费计划。
    免费计划
  • 完成项目创建。
  • 点击自己的项目,选择 connect
    connect
  • 选择ipv4 支持
    ipv6不支持
    ipv4支持

官网关于ipv4支持的说明:说明https://supabase.com/docs/guides/platform/ipv4-address

登录github

访问github仓库,点击 Fork按钮,将项目复制到自己的仓库。

在supabase中执行sql语句

  • 访问 sql editor
  • https://github.com/ningwenyan/vercel-supabase-typecho/blob/main/install/Pgsql.sql文件中的内容复制到 sqleditor中,点击运行按钮,创建数据库表。
  • 表会被创建在 public模式下。

登录vercel

使用github账号登录vercel,点击 Import Project按钮,导入自己的仓库。选择部署,第一次部署会有报错,可以不用管,等部署完成后,点击 Settings按钮,选择 Environment Variables,添加以下环境变量:

NameValue
DB_HOST数据库主机地址
DB_PORT数据库端口号
DB_NAME数据库名称
DB_USER数据库用户名
DB_PASSWORD数据库密码
添加完成后,重新部署项目。

访问typecho

部署完成后,访问 https://你的项目名称.vercel.app/install.php,按照提示完成安装。
安装页面
看到这个页面,说明安装完成。
安装完成

注意事项

  • 文件上传限制
  • Vercel是无服务器环境,不支持传统的文件上传。

已测试可使用主题

  • butterfly

vercel添加域名

  • 访问vercel项目设置,选择 Domains,添加自己的域名。
  • 等待域名添加完成,访问自己的域名,即可访问typecho。

typecho后台配置域名

  • 访问typecho后台,选择 设置,选择 站点,将 站点地址修改为自己的域名。
  • 点击 保存按钮,保存设置。
  • 访问自己的域名,即可访问typecho。
    修改站点地址