云服务主机迁移大作战:从腾讯云迁移到阿里云的实战笔记

本文详细描述了如何将基于腾讯云的项目迁移到阿里云,涉及硬件环境准备、软件环境安装、Nginx配置、uwsgi服务启动、域名解析切换以及HTTPS部署的过程,包括遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

之前自己的云服务是建在腾讯云服务器上,之前那套环境的搭建和配置过程请参考之前的笔记:

Nginx+Uwsgi部署Django项目实操(静态文件导入失败避坑指南)_nginx 配置的路径 影响django的urls-CSDN博客

这次需要将服务从腾讯云的主机迁移到阿里云的主机上,整体还是比较顺利的。

把过程记录和遇到的一些问题一并记录一下,以供参考:

一、准备硬件环境

1. 购买阿里云主机,选择了和腾讯云主机当时一样的系统镜像:Ubuntu20.04

2. 记录主机IP地址,设置远程连接密码后。用XSHELL和XFTP连接主机。

二、安装软件环境

1. 在XSHELL中运行以下命令:

apt-get update

apt-get upgrade

apt-get install python(如果系统已经默认安装好了,就不需要了)

apt-get install nginx

apt-get install pip

apt-get install ffmpeg(这个如果你的项目不需要就不要装了)

pip install django

pip install uwsgi

(以下根据项目实际需要安装)

pip install bs4

pip install pydub

pip install erniebot

2. 将项目文件通过XFTP拖到阿里云主机下(最好是保持和腾讯云一模一样的路径,否则可能会出错,因为不少配置文件会用到这条路径)

三、配置Nginx

1. 在etc/nginx/目录下,编辑nginx.conf文件,只需要改一点:

将 user www-data; 改为 user root; 即可

2. 在etc/nginx/sites-enabled/目录下,编辑default文件,文件内容如下(此时还没有配置SSL,所以监听端口还是80):

# myserver configuration
#
server {
	listen 80;
	listen [::]:80;
 
	server_name 你服务器的IP地址;
 
	#定义nginx log的保持文件,需要先建一下目录,不然nginx会报错
    access_log  /root/django-projects/myserver/logs/access.log;
    error_log   /root/django-projects/myserver/logs/error.log;
 
    location / {
        # 监听 8000 端口,与 uwsgi.ini 里的 socket 设置成同一个端口
     	uwsgi_pass 127.0.0.1:8000;
        include uwsgi_params;
    }
 
    location /static {
        # 静态文件目录,STATIC_ROOT 指定的目录
        alias /root/django-projects/myserver/static_root;
    }
 
}

注意:我遇到的第一个小问题来了,因为是直接copy了腾讯云主机上的default文件过来,server_name后面用的是我的域名地址。此处server_name后面应该写你的主机IP地址,因为此时我的域名解析还是指向腾讯云主机的。(如果你的域名已经指向本机那就没问题)

到这里Nginx应该OK了,在浏览器里输入你的主机地址,应该可以看到Nginx的欢迎界面了。

四、启动uwsgi服务

去uwsgi.ini所在目录下运行:uwsgi --ini uwsgi.ini,启动uwsgi

注意:这里我遇到了第二个问题,运行uwsgi --ini uwsgi.ini时,提示

"no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load it with --plugin"

解决办法是安装plugin:

apt-get install uwsgi-plugin-python3 

然后在uwsgi.ini中加入两句话:

plugins-dir = /usr/lib/uwsgi/plugins

plugins = python3

再次运行uwsgi --ini uwsgi.ini,问题解决。

此时整个服务已经迁移完毕,在浏览器里输入主机地址,可以看到熟悉的主页回来了。

五、切换域名指向

我是参考了这篇指南的操作:非阿里云注册域名如何在云解析DNS设置解析_云解析DNS(DNS)-阿里云帮助中心

1. 首先进入阿里云,云解析DNS --> 域名解析 --> 添加域名 添加你的域名和你的主机IP地址

2. 在解析设置里查看云解析系统分配DNS里的DNS服务地址(记录这两个地址,待会要在腾讯云的DNS控制台里将这两个地址覆盖原来老的DNS地址)

3. 打开腾讯云,按以下步骤进行操作:

进入 域名注册 --> 我的域名 --> 点击你的域名 --> DNS解析,如下:

点击 修改DNS服务器,将刚才记录的阿里云的两个DNS服务地址覆盖以前的地址,然后等待新的DNS服务地址生效(官方说48小时内,我昨天大概等了十几分钟就ok了)

这样域名解析就算切换成功了。但是你的域名和备案其实还是用的腾讯云的管理服务,据说如果要把域名转到阿里云的话,域名还需要重新备案。我选择把域名留在腾讯云了。

六、部署SSL证书,启用HTTPS访问

主要参考这篇文章就可以了:

SSL 证书 Nginx 服务器 SSL 证书安装部署-证书安装-文档中心-腾讯云

主要步骤:

1. 在云控制台申请SSL证书

2. 从云控制台下载证书,upload证书文件到云主机的/etc/nginx 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)

3. 修改Nginx配置文件,我是在/etc/nginx/sites-enabled/default里修改的。主要就是把80端口切换成https专用的443端口,还有做一些SSL相关的配置

# myserver configuration
#
server {
        #listen 80;
        #listen [::]:80;

        #定义nginx log的保持文件,需要先建一下目录,不然nginx会报错
        access_log  /home/ubuntu/nginx-logs/access.log;
        error_log   /home/ubuntu/nginx-logs/error.log;

        location / {
                # 监听 8000 端口,与 uwsgi.ini 里的 socket 设置成同一个端口
                uwsgi_pass 127.0.0.1:8000;
                include uwsgi_params;
        }

        location /static {
                # 静态文件目录,STATIC_ROOT 指定的目录
                alias /home/ubuntu/myserver/static_root;
        }

        location /media {
                # 媒体文件目录,MEDIA_ROOT 指定的目录
                alias /home/ubuntu/myserver/media;
        }

         #SSL 访问端口号为 443
         listen 443 ssl;
        #填写绑定证书的域名
         server_name 填写你的域名或主机IP地址;
        #启用 SSL 功能
         #ssl on;
         #证书文件名称
         ssl_certificate 你的证书的crt文件;
         #私钥文件名称
         ssl_certificate_key 你的证书的key文件;

         ssl_session_timeout 5m;
         #请按照以下协议配置
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
         #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
         ssl_prefer_server_ciphers on;

}

#将http访问转到https访问
server {
 listen 80;
 #请填写绑定证书的域名
 server_name 101.133.142.252; 
 #把http的域名请求转成https
 return 301 https://$host$request_uri; 
}

到此,你的HTTPS地址应该可以正常访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程哥聊AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值