2025年ubuntu 换源(ubuntu 换源 还慢)

ubuntu 换源(ubuntu 换源 还慢)p 一 服务器迁移与系统更换 br 由于深圳的云服务器即将到期 为了方便管理 决定将服务器迁移至成都 首先 建立了一个按量付费的成都服务器进行测试 发现 ping 深圳服务器的延迟为 36ms 而 ping 成都服务器的延迟仅为 7ms 差距十分明显 鉴于此 决定进行服务器迁移 br 同时 由于之前的服务器使用的是 CentOS br br p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p>一、服务器迁移与系统更换<br>由于深圳的云服务器即将到期,为了方便管理,决定将服务器迁移至成都。首先,建立了一个按量付费的成都服务器进行测试,发现 ping 深圳服务器的延迟为 36ms,而 ping 成都服务器的延迟仅为 7ms,差距十分明显。鉴于此,决定进行服务器迁移。<br>同时,由于之前的服务器使用的是 CentOS Stream 系统,现在决定更换为 Ubuntu 系统,这意味着需要从 0 开始进行部署。<br>二、设置虚拟内存<br>新的服务器仅有 2G 物理内存,为了提升性能,首先需要增加虚拟内存。具体步骤如下:<br>创建一个目录:<br>plaintext<br>Copy<br> mkdir -p /mnt/data/mem<br>创建一个 4G 的文件,可以使用 fallocate 命令,如果该命令不可用,也可使用 dd 命令:<br>plaintext<br>Copy<br> fallocate -l 64G /mnt/data/mem/swapfile<br>或者<br>plaintext<br>Copy<br> dd if=/dev/zero of=/mnt/data/mem/swapfile bs=1G count=4<br>设置权限:<br>plaintext<br>Copy<br> chmod 600 /mnt/data/mem/swapfile<br>将文件格式化为 swap 空间:<br>plaintext<br>Copy<br> mkswap /mnt/data/mem/swapfile<br>启用 swap 文件:<br>plaintext<br>Copy<br> swapon /mnt/data/mem/swapfile<br>验证 swap 是否可用:<br>plaintext<br>Copy<br> swapon --show<br>为了在服务器重启后仍然保留这个 swap,还需要编辑 /etc/fstab 文件,在文件末尾增加以下内容:<br>plaintext<br>Copy<br> /mnt/data/mem/swapfile none swap sw 0 0<br>需要注意的是,之前在深圳的 CentOS 服务器上配置的是 /home/swapfile swap swap default 0 0。<br>如果要修改虚拟内存大小,先禁用当前交换空间:<br>plaintext<br>Copy<br> swapoff -a<br>然后删除现有的 swap 文件:<br>plaintext<br>Copy<br> rm /mnt/data/mem/swapfile<br>最后重新执行上述步骤即可。<br>三、安装 Docker<br>在安装 Docker 之前,先了解一下 docker.io 和 docker.ce。docker.io出现较早,docker.ce是社区版。docker.io支持的平台较少,更新频率也较慢。而 docker-ce还包括对 Swarm 等 Docker 工具的支持,并且具有更丰富的社区支持和文档资料。<br>在 Ubuntu 系统上安装 Docker,docker.io可以直接通过 apt install docker.io安装,而安装 docker-ce则需要多一些步骤。首先进行 apt update,如果是阿里云服务器上的 Ubuntu 系统,可能自带了阿里云镜像源,就不需要再配置源了。<br>然后安装一些软件:<br>plaintext<br>Copy<br> apt install apt-transport-https ca-certificates curl software-properties-common<br>安装 GPG 证书,可以使用阿里云的镜像源,因为官方的可能被墙:<br>plaintext<br>Copy<br> curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -<br>写入软件源信息:<br>plaintext<br>Copy<br> add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"<br>再次进行 apt update,然后安装 docker-ce:<br>plaintext<br>Copy<br> apt install docker-ce<br>以及其他相关包:<br>plaintext<br>Copy<br> apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<br>查看 Docker 版本:<br>plaintext<br>Copy<br> docker -v<br>查看 Docker 状态:<br>plaintext<br>Copy<br> systemctl status docker<br>测试 Docker 是否正常:<br>plaintext<br>Copy<br> docker run hello-world<br>如果出现报错,可能是镜像源的问题。可以更改镜像源,比如在 /etc/docker/daemon.json文件中添加以下内容:<br>json<br>Copy<br> {</p><pre></pre><p>}<br>然后重启 Docker:</p><p>systemctl daemon-reload<br> systemctl restart docker<br>检查配置是否成功,可以通过 docker info查看输出结果中是否有上述镜像 url。<br>接着安装 docker-compose,可以先尝试通过 apt install docker-compose安装,但可能会发现版本比较低。可以先移除这个低版本:<br>plaintext<br>Copy<br> apt remove docker-compose<br>然后使用 GitHub 上的安装方法,比如:<br>plaintext<br>Copy<br> curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose<br>如果有新版本,将上面的版本号替换一下。如果下载缓慢,可以在本地用迅雷下载,在 GitHub releases 更多上找到 docker-compose-linux-x86_64,重命名为 docker-compose,复制到服务器上的 /usr/local/bin/目录中。如果该目录中已经有一个未下载完的 docker-compose,可以先删除它。然后赋予执行权限:<br>plaintext<br>Copy<br> chmod +x /usr/local/bin/docker-compose<br>如果还是不能使用 docker-compose version命令,可以参考 Docker Compose 的官方 GitHub 说明,将其复制到合适的目录中,比如 /usr/libexec/docker/cli-plugins,并赋予执行权限。<br>如果发现 docker pull镜像有时会失败,可以添加自己阿里云的镜像服务地址,但可能只有自己的阿里云服务器能访问。<br>四、安装 MySQL<br>这里安装 MySQL 8.0。首先更新软件源:<br>plaintext<br>Copy<br> apt update<br>然后安装 MySQL:<br>plaintext<br>Copy<br> apt install mysql-server -y<br>查看版本:<br>plaintext<br>Copy<br> mysql --version<br>查看运行状态:<br>plaintext<br>Copy<br> systemctl status mysql<br>以数字 ip 形式显示 MySQL 的 tcp 监听状态:<br>plaintext<br>Copy<br> netstat -tln<br>设置 MySQL 的 root 密码,安装后首次是不需要密码的:<br>plaintext<br>Copy<br> mysql -u root<br>修改密码:<br>plaintext<br>Copy<br> alter user 'root'@'localhost' identified with mysql_native_password by '';<br>设置允许远程登陆:<br>sql<br>Copy<br> use mysql;<br> update user set host='%' where user='root';<br> flush privileges; -- 权限刷新<br> exit;<br>但此时可能还是不能远程登陆,还需要修改 /etc/mysql/mysql.conf.d/mysqld.cnf文件,将 bind-address = 0.0.0.0。然后重启 MySQL:<br>plaintext<br>Copy<br> systemctl restart mysql<br>并且在阿里云防火墙开放端口。远程连接后新建一个数据库,编码选择 utf8mb4,新建一个表,在字段中随便插入一些大小写英文和中文,用 select * from table like '%xxxx%'查询时,会发现 xxxx不区分大小写,中文也显示正常,但是表名区分大小写。<br>为了解决这个问题,可以在 /etc/mysql/mysql.conf.d/mysqld.cnf配置文件最后增加 lower_case_table_names=1。但如果在已经安装好 MySQL 后增加这个配置是无法重启 MySQL 服务的,因为这个配置只允许在初始化数据库之前设置。实际上,如果在安装 MySQL 之前就有这个配置文件,安装 MySQL 的时候会提示是否使用它,此时忽略表名大小写就会生效。由于卸载 MySQL 会移除这个文件,所以先对它进行备份,再卸载 MySQL,然后复原。<br>具体步骤如下:<br>停止 MySQL:<br>plaintext<br>Copy<br> systemctl stop mysql<br>备份配置文件:<br>plaintext<br>Copy<br> cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.backup<br>卸载之前安装的 MySQL:<br>plaintext<br>Copy<br> apt-get --purge autoremove mysql-server<br>删除目录:<br>plaintext<br>Copy<br> rm -rf /var/lib/mysql<br>还原配置文件:<br>plaintext<br>Copy<br> cp /etc/mysql/mysql.conf.d/mysqld.cnf.backup /etc/mysql/mysql.conf.d/mysqld.cnf<br>顺便把 bind-address改成 0.0.0.0,在 [mysqld]下添加 lower_case_table_names=1。<br>重新安装 MySQL:<br>plaintext<br>Copy<br> apt-get install mysql-server<br>安装的时候会提示已经包含配置文件,此时选 N。<br>五、安装 Nginx<br>安装 Nginx 非常简单,直接使用 apt install nginx即可。安装完成后就可以访问服务器的 ip:80端口了。<br>六、MySQL 数据迁移<br>先在源数据库服务器上执行备份,此命令只能备份一个数据库:<br>plaintext<br>Copy<br> mysqldump -u root -p db_app &gt; db_app.sql<br>输入密码后就会备份到当前目录。然后在目标数据库上新建一个数据库 db_app,再把备份的 sql 文件复制到目标服务器上,在目标服务器上运行:<br>plaintext<br>Copy<br> mysql -u root -p db_app &lt; db_app.sql<br>如果不先建立数据库,会提示数据库不存在。导入完成后可以查看数据是否全在。<br>七、安装.NET 运行环境<br>这里只需要安装运行时,选择安装 ASP.NET Core 运行时,因为它同时包括.NET 和 ASP.NET Core 运行时。使用以下命令安装:<br>plaintext<br>Copy<br> apt-get install -y aspnetcore-runtime-8.0<br>安装完成后,运行 dotnet -v是看不到的,因为没安装 SDK,但可以使用 dotnet xxx.dll。<br><img src="https://community-static.vivo.com.cn/wiwNWYCFW9ieGbWq/threadResource//1056/11de7d29d49a47fb80f3eb1af1fd3d9b_w2360_h3144.jpg_.webp" alt="森尧记-服务器迁移" title="森尧记-服务器迁移"><br>八、安装 Redis<br>不太清楚 apt install redis和 apt install redis-server有啥区别。按官网的直接使用 apt install redis,查看状态 systemctl status redis-server会没有显示,但 apt install redis-server后直接就有状态了。<br>接下来可以进行以下操作:<br>plaintext<br>Copy<br> systemctl enable redis-server<br>然后启动服务:<br>plaintext<br>Copy<br> systemctl start redis-server<br>查看状态可以看到正在运行:<br>plaintext<br>Copy<br> systemctl enable redis-server<br>也可以按照官网的安装方法:<br>plaintext<br>Copy<br> sudo apt-get install lsb-release curl gpg<br> curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg<br> sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg<br> echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list<br> sudo apt-get update<br> sudo apt-get install redis<br>Redis 会自动启动,并且应该在启动时自动重启。如果 Redis 在重新启动后没有启动,可能需要手动启用它:<br>plaintext<br>Copy<br> sudo systemctl enable redis-server<br> sudo systemctl start redis-server<br>验证 Redis 是否正常工作,可以使用以下命令:<br>plaintext<br>Copy<br> redis-cli<br>然后输入 ping。<br>为了让 Redis 可以被其他服务器访问,可以修改 /etc/redis/redis.conf文件,找到 bind 127.0.0.1 ::1,将 127.0.0.1改为 0.0.0.0,并增加密码,找到 requirepass,取消掉注释,修改为 requirepass 。protected-mode可以保持不动。<br>九、恢复 Nginx 配置<br>CentOS 版本的 Nginx 为 /nginx/1.20.1,Ubuntu 版本的 Nginx 为 /nginx/1.18.0 (Ubuntu)。修改 /etc/nginx/nginx.conf文件,发现里面有 include /etc/nginx/sites-enabled/*;。在 Ubuntu 系统中,这个文件夹里已经有个 default文件,就是默认的 80 端口配置。现在只需要在这个文件夹中新增文件,然后将以前的 server { }复制过来。但在 CentOS 系统中,nginx 没有这个目录。<br>十、迁移 Gitea 服务器<br>Git 服务器是在 Docker 中部署的 Gitea。将整个 Gitea 目录复制到新服务器中,修改 docker-compose.yml文件。注意 image: gitea/gitea:1.21.3版本需要保持不变,尝试使用 latest会导致 Git 服务器无法访问。同时,MySQL 配置的 host不能是 127.0.0.1 需要改成服务器的ip, 因为这是在docker中的,我就是没注意到这里导致无法访问mysql启动不了这里我发现无法拉取1.21.3 镜像,那么可以先在原服务器上先把镜像打包docker save -o gitea.tar gitea/gieta:1.21.3<br>然后在新服务器上导入docker load --input gitea.tar<br>然后docker images 一下看是否导入成功。<br>最后转到docker-compose.yml 所在目录<br>docker-compose up -d<br>可以docker logs gitea 看下日志是否启动成功<br>今天晚上发现nginx托管的静态资源 无法打开报403 但昨天就没此问题怀疑昨天还是用的之前深圳服务器的缓存,几经查找最终解决是将/etc/nginx/nginx.conf 第一行的user 改成root, 另外发现页面打开有问题需要F12禁用下缓存</p> 

讯享网
小讯
上一篇 2025-05-08 08:27
下一篇 2025-05-15 16:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/146509.html