现在看到的博客已经跑在阿里云上了,随之迁移的还有找歌词后台和花图相册(链接就在屏幕左侧)。由于之前用的linkcloud云主机业务与阿里云合并,商务那边通知到期后只能迁移到阿里云上,正好他们家的内核版本过低,无法满足docker需要,于是尽早开始了迁移计划。
首先是转移备案,阿里的备案系统还是蛮方便的,后台填完资料,寄送幕布,都很快,最后审核了一周多点也就过了。收到邮件后立刻新开了主机,配置环境。这里还有个小插曲,备案前其实就买了一个,后来觉得配置太高了,于是又退了。事实证明,阿里的单核顶linkcloud双核。
迁移并不复杂,无非是安装新环境,打包,传输,解压,运行,验证。这里简单做下笔记,以备不时之需。
1. 磁盘挂载
买了新主机,自然是先挂载好数据盘,阿里的帮助中心已经写的很清楚了。我选配了100g的普通云盘,挂在点位于/dev/xvdb,将用ext4格式化。fdisk -l可以看到一个xvdb磁盘未包含任何分区信息,用fdisk /dev/xvdb对磁盘进行分区,再次使用fdisk -l可以看到/dev/xvdb1出现,用mkfs.ext4 /dev/xvdb1进行格式化。
配置到fstab以便开机自动挂载
echo '/dev/xvdb1 /mnt/vdb1 ext4 defaults 0 0' >> /etc/fstab
此时可以重启下验证是否成功df -h
/dev/xvdb1 99G 60M 94G 1% /mnt
2. nginx
使用apt-get安装,同步旧服务器的conf.d/*配置文件,Jenkins密码文件,SSL证书。删除默认站点sites-available和sites-enabled目录下的default。nginx推荐做法是将站点配置(Virtual Host)文件放在sites-available下,在sites-enabled下建立到available的连接,可以方便的启用和禁用。我这里简单处理全放在了conf.d下。
关闭nginx版本显示和post大小限制:
vim /etc/nginx/nginx.conf
server_tokens off;
client_max_body_size 20M;
配置完重启nginx进程,检测是否有误
3. mysql
使用apt-get安装,同步旧服务器conf,授权远程登录,修改root密码:
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "newpassword";
GRANT ALL PRIVILEGES ON *.* TO root@“127.0.0.1" IDENTIFIED BY "newpassword";
GRANT ALL PRIVILEGES ON *.* TO root@"localhost" IDENTIFIED BY "newpassword";
flush privileges;
导出旧服务器上的db,p参数表示待输入密码
mysqldump -p db_name > db_name.sql
复制到新机器上登录mysql后用以下命令导入
source /root/db_name.sql;
若数据量不大,可以用GUI工具转移,例如Navicat的数据传输功能
4. redis
下载源代码&编译安装
wget http://download.redis.io/releases/redis-3.0.6.tar.gz
tar xf redis-3.0.6.tar.gz
cd redis-3.0.6/
make
make install
安装为服务,自启动
cd utils
./install_server.sh
为了安全起见,redis仅监听来自本机的请求,设置bind 127.0.0.1,并设置密码requirepass。再修改启动脚本,增加密码(若设置了密码,必须要如下操作,否则无法正常重启redis)
vim /etc/init.d/redis_6379
定义变量:
PASS="pass"
在stop方法中增加-a参数
$CLIEXEC -p $REDISPORT -a $PASS shutdown
迁移redis数据,在旧机器上登录redis-cli,使用save指令将内存数据保存到/var/lib/redis/dump.rdb中,再scp到新机器对应的目录上,重启即可。
5. java,maven,jenkins,tomcat
官方JDK最新已经是8u65了,直接用最新的,不得不说Oracle也是个坑货,下载个jdk还要验证一下,导致直接wget链接会失败的。这里加一个cookie就好了:
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gz
下载放在/usr/java 目录中
tar xf 解压到/usr/java/jdk1.8.0_66
设置环境变量:
# set maven home
export MAVEN_HOME=/usr/local/apache-maven-3.3.3
export PATH=$MAVEN_HOME/bin:$PATH
# set java home
export JAVA_HOME=/usr/java/jdk1.8.0_66
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
# set jenkins home
export JENKINS_HOME=/mnt/vdb1/.jenkins
将旧机器的相关目录打包scp过来即可
6. fastdfs
Fastdfs安装可以参考我之前的文章,这里简单带过。先安装libfastcommon和做好链接,同步旧服务器配置文件和照片数据目录,设置为服务自动启动:
update-rc.d fdfs_trackerd defaults 90
update-rc.d fdfs_storaged defaults 95
7. php和wordpress
apt-get安装php5-fpm和php5-mysql,复制wordpress目录。新版本的fpm默认没有监听9000端口,而是采用unix sock来连接,因此nginx站点配置中修改下
fastcgi_pass unix:/var/run/php5-fpm.sock;
最后再检查各个项目是否正常,接口是否能调用成功,再到dnspod中将各域名A纪录指向阿里云的新IP,保证平滑迁移,至此就算完成了。