一次搬迁服务器到ctyun

记一次帮别人搬迁全景服务器到ctyun,原服务器在腾讯续费八千多,在ctyun买了一个s6 485配置的机器5年3000,于是搬迁到ctyun了。服务器数据盘有大概480g全景图,不准备在ctyun买数据盘存储了,500g数据盘5年价格3000多。在腾讯领了一个半年1t试用cos,把数据备份了一份到cos,跑了约一天全部上传完成。由于之前全景图在七牛,浏览的时候回源本地数据盘的图片,导致七牛的数据不完整的,决定再传一份到七牛,传了约1天跑了10%数据,感觉上传较慢,由于是在服务器到期前两三天搬迁的,服务器停机也没上传完成。我就把七牛的回源地址指向cos解决。此外数据库的数据有一部分是指向本地路径,此时本地数据已经删除了,cos有完整备份,本地图片nginx代理访问cos解决。

配置本地图片代理访问cos
# 设置目标 COS 信息
set $cos_bucket "xxx";
set $cos_region "ap-xxx";
set $cos_host "${cos_bucket}.cos.${cos_region}.myqcloud.com";
# DNS 解析配置
resolver 114.114.114.114 223.5.5.5 8.8.8.8 valid=30s;
resolver_timeout 5s;
# 核心代理配置:精确匹配 /vrimages/ 路径
location ^~ /vrimages/ {
  # 精确代理到 COS 路径
  proxy_pass https://$cos_host$request_uri;
  # 必须的头部设置
  proxy_set_header Host $cos_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  # HTTPS 配置
  proxy_ssl_server_name on;
  proxy_ssl_session_reuse on;
  proxy_ssl_protocols TLSv1.2 TLSv1.3;
  # 性能优化
  proxy_connect_timeout 5s;
  proxy_send_timeout 10s;
  proxy_read_timeout 20s;
  proxy_buffer_size 64k;
  proxy_buffers 16 64k;
  proxy_busy_buffers_size 128k;
  # 添加源识别头
  add_header X-Origin "Tencent-COS";
  add_header X-Cos-Bucket $cos_host;
  # 缓存控制
  proxy_cache_valid 200 304 30d;
  add_header Cache-Control "public, max-age=2592000";
}
备份cos和七牛
./coscli cp ./xxx/vrimages/ cos://xxx/vrimages -r
./qshell account ak as name #设置账号
./qshell qupload2 --src-dir=/www/wwwroot/xxx/vrimages/ --bucket=xxx --accelerate --check-exists --log-level=error --record-root=/www/wwwroot/log

上传七牛一定要指定log-level,不然会产生很多日志。

项目集成illuminate/database

迁移的项目很古老了,原来的查询写法比较难用,集成了illuminate/database,提升开发效率。

<?php
require_once __DIR__."/../vendor/autoload.php";
$db_config = include_once __DIR__."/../config/db.php";
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Container\Container;
$container = new Container;
$capsule = new Capsule($container);
$capsule->addConnection($db_config);
// 设置全局静态访问
$capsule->setAsGlobal();
// 启动 Eloquent ORM
$capsule->bootEloquent();
// 将数据库管理器实例绑定到容器,键名为'db'
$container->instance('db', $capsule->getDatabaseManager());
Container::setInstance($container);
// 设置 Facade 的根容器
Illuminate\Support\Facades\Facade::setFacadeApplication($container);
return $capsule;
<?php
require __DIR__ . '/vendor/autoload.php';
$capsule = require __DIR__ . '/bootstrap/database.php';
// 设置默认时区
date_default_timezone_set('Asia/Shanghai');
// 示例使用
use Illuminate\Support\Facades\DB;
DB::enableQueryLog(); //使支持查询日志
//查询删除超过30天的作品
$worksmain = DB::table('worksmain')->select('pk_works_main')->where(function($query){
    //$query->where('delete_time','<=',time()-30*86400)->where('delete_time','>',0);
    $query->where('delete_time','>',0);
})->get();
require_once __DIR__.'/source/include/cls_queue.php';
foreach($worksmain as $v){
    QueueClient::push('delWorksImage',['pk_works_main'=>$v->pk_works_main]);
}
//print_r(DB::getQueryLog());

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注