阿里云服务器初始化简记

2024-03-31 09:52

本文主要是介绍阿里云服务器初始化简记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 推荐版本
        • CPU、内存、硬盘视活动而定,一般活动价99元一年
        • 注意带宽
        • 云服务器具体设置建议
        • 系统推荐CentOS 7.9
        • 本地系统推荐MacOS+iTerm2
        • 本地系统推荐Win11+Linux子系统
        • 推荐开发环境Nginx+Python+MySQL
      • 机器和系统基本状况
        • 测试网速
        • 设置Vim显示中文
        • 其他系统状态监控和常见操作
      • MySQL
        • 推荐5.7版本
        • 安装
        • 安装提示错误:“GPG 密钥已安装,但是不适用于此软件包”
        • 配置和使用
      • Python
        • Python版本
        • 安装和使用Web框架Flask
        • 使用Flask实现Web服务
        • 安装并使用Gunicorn来部署Flask服务
        • 配置Supervisor来监视Web服务运行
        • 其他
      • Nginx
        • 安装
        • 更多Nginx参数和命令
        • 配置静态Web服务器
        • 配置动态Web服务器
      • 其他Web服务开发架构
        • Go
        • Apache/lighttpd+PHP
        • Tomcat+Java(Spring)

推荐版本

CPU、内存、硬盘视活动而定,一般活动价99元一年

个人使用对CPU、内存、硬盘需求不大,无具体硬性要求。

双十一活动价99元一年,但不可99元续费。因为续费非常贵,个人使用可以到期后再重新申请一台云服务器并重新初始化,并迁移数据和资料。

注意带宽

有些低价活动中给的带宽非常有限,注意是否满足自己的使用需求。

云服务器具体设置建议
  1. 区域:建议选择自己所在城市;
  2. 建议关闭附送的全套安全监视,对个人使用其带来的收益非常有限,关闭可以节约系统的性能损耗。
  3. 登录方式可以设置为密码方式(该方式虽然安全性有所降低,但远程登录使用更方便),ecs-user登录即可。注意:云服务器可以在公网使用密码登录,所以,登录密设置一定要满足强度。
系统推荐CentOS 7.9

CentOS 7 作为长期支持版本(LTS),CentOS 7享有广泛的用户基础和长期的官方支持周期,这意味着它经历了长时间的市场检验,积累了大量的软件包更新和安全补丁,稳定性与可靠性较高。特别是在生产环境中,很多用户倾向于选择CentOS 7,因为它提供了一个稳定的软件生态系统,便于维护和管理。

虽然CentOS 8已经推出,但由于CentOS项目在2020年底宣布停止对CentOS 8的长期支持,转而推荐用户使用CentOS Stream,这导致了许多用户对CentOS 8的使用持谨慎态度。

推荐最新稳定版本:一般来说,选择最新发布的稳定版本(如7.9)更为推荐。这是因为新版本通常包含了旧版本以来的所有重要更新、安全修复以及性能改进。使用最新版本可以确保系统具有最新的安全防护,减少潜在的安全风险。

本地系统推荐MacOS+iTerm2

具体参见:Mac OS系统使用笔记,涉及的相关内容全文搜索对应关键字即可。

  1. 终端使用iTerm2;
  2. 设置ssh连接可以复用之前的连接;
  3. 使用命令 ssh ecs-user@公网IP 即可远程登录,首次登录需要输入密码;
本地系统推荐Win11+Linux子系统

具体参见:Win10 & Win11 安装和使用手记

  1. 终端使用Linux子系统,如Ubuntu;
  2. 可选:设置ssh连接可以复用之前的连接;(需要参考上文MacOS部分设置)
  3. 使用命令 ssh ecs-user@公网IP 即可远程登录
推荐开发环境Nginx+Python+MySQL

考虑到个人使用场景,为了追求极致的轻量级,易于开发、部署和管理,推荐以下开发环境组合:

  1. Nginx:作为高性能的HTTP和反向代理服务器,Nginx以其低内存消耗、高并发处理能力和稳定性著称。它适合用于搭建简单且高效的Web服务器、提供静态文件服务、实现负载均衡等功能。

  2. Python:作为一门易学易用、功能强大的编程语言,Python拥有丰富的Web开发框架和库。推荐使用Flask,因为它轻量、灵活且易于上手,可以快速构建功能丰富的Web应用,同时保持代码结构清晰。

  3. MySQL:作为一款广泛使用的开源关系型数据库管理系统,MySQL提供稳定的数据存储和查询能力,足以应对大部分数据管理需求,且其资源占用相对较低。

机器和系统基本状况

测试网速

speedtest-cli 是一个用 Python 编写的轻量级 Linux 命令行工具,基于 Speedtest.net 的基础架构来测量网络的上/下行速率。

安装:

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod a+rx speedtest.py
sudo mv speedtest.py /usr/local/bin/speedtest

直接执行命令 speedtest 测试网速,使用实例:

speedtest
Retrieving speedtest.net configuration...
Testing from Hangzhou Alibaba Advertising Co. (xx.xx.xx.xx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by China Mobile Group Beijing Co.Ltd (Beijing) [0.43 km]: 8.8 ms
Testing download speed................................................................................
Download: 110.95 Mbit/s
Testing upload speed................................................................................................
Upload: 3.76 Mbit/s
设置Vim显示中文

分别编辑自己和root的vim配置文件:

vi ~/.vimrc
sudo vi /root/.vimrc

写入如下内容:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set encoding=utf-8
其他系统状态监控和常见操作

参见:linux常用命令,目录索引或者全文搜索。

MySQL

推荐5.7版本

MySQL 5.7 是目前最为稳定的版本之一,被许多企业广泛使用。相比早期版本有显著性能、安全性和可靠性的提升。

MySQL 8.0 是最新的稳定版本,提供了性能、安全性、可靠性方面的大幅提升。特别在大规模数据存储和处理方面表现优秀。

安装
sudo yum update -y# CentOS系统默认仓库可能不包含MySQL 5.7,需要添加MySQL官方的Yum仓库。
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo yum install mysql-community-server -y
安装提示错误:“GPG 密钥已安装,但是不适用于此软件包”

执行以下命令安装正确的MySQL GPG密钥,然后,重新安装MySQL 5.7:

# 移除已安装的MySQL GPG密钥
sudo rpm -e gpg-pubkey --allmatches --noprompt# 获取最新的GPG公钥文件并导入
wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo rpm --import RPM-GPG-KEY-mysql-2022# 更新Yum缓存
sudo yum clean all
sudo yum makecache# 重新安装MySQL 5.7
# sudo yum install mysql-community-server -y
配置和使用

在云服务器终端上执行:

# 启动MySQL服务
sudo systemctl start mysqld# 设置为自动启动
sudo systemctl enable mysqld# 查找生成的root临时密码
sudo grep 'temporary password' /var/log/mysqld.log# 使用刚才找到的临时密码登录MySQL
mysql -u root -p

在MySQL命令行执行:

# 使用root临时密码登录后,首先需要重新设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '<强密码(包含数字、大写字母、小写字母、特殊字符)>';# 查看每个用户的详细权限信息
SHOW GRANTS;

其他优化操作,如binlog和慢查询优化等,参见:https://blog.csdn.net/zhiyuan411/article/details/6892164#6. 对my.cnf的优化

更多MySQL命令参见:mysql命令

Python

Python版本

系统默认已经安装好Python2和Python3版本,分别为:

python --version
Python 2.7.5python3 --version
Python 3.6.8

如无特殊要求,推荐Python3版本。(如果需要对老旧的库和技术兼容则使用Python2版本)

安装和使用Web框架Flask

可选:创建并激活虚拟环境

mkdir my_flask_project
cd my_flask_project
python3 -m venv venvsource venv/bin/activate

安装Flask:

sudo pip3 install Flask

验证安装是否成功,首先执行python3,进入Python3交互环境;然后,在Python提示符下输入:

import flask
flask.__version__
exit()
使用Flask实现Web服务

使用示例参见:https://blog.csdn.net/zhiyuan411/article/details/7108836#2)Flask

安装并使用Gunicorn来部署Flask服务

安装Gunicorn:

sudo pip3 install gunicorn

使用Gunicorn命令来启动Flask应用:

# 假设Flask应用入口点在test.py文件中,且应用实例名为app
gunicorn --workers=2 --bind=0.0.0.0:8080 test:app# Gunicorn其他常用参数包括:
# -t SEC: 设置请求超时时间(秒)。
# -k WORKER_CLASS: 选择工作进程类型,如sync(默认)、gevent、eventlet等。
配置Supervisor来监视Web服务运行

test.py的同级目录中创建 Gunicorn 配置文件 (gunicorn.conf.py),内容如下:

import osbind = "0.0.0.0:8080"  # 监听的 IP 和端口
workers = 2  # 根据实际情况调整工作进程数
worker_class = "sync"  # 或选择其他 worker 类型,如 "gevent", "eventlet", "tornado"# 指定日志文件路径
accesslog = "/var/log/gunicorn-app-access.log"
errorlog = "/var/log/gunicorn-app-error.log"# 其他可能需要的配置项,如 timeout、keepalive、preload_app 等
# ...

安装Supervisor:

# 添加EPEL(Extra Packages for Enterprise Linux)仓库
sudo yum install -y epel-release# 安装Supervisor
sudo yum install -y supervisor

/etc/supervisord.d目录下创建一个名为gunicorn.ini的文件:sudo vi /etc/supervisord.d/gunicorn.ini,其内容为:

[program:gunicorn]
# 替换为实际配置文件路径
command=/usr/local/bin/gunicorn -c /path/to/my_flask_app/gunicorn.conf.py test:app
# Python应用程序所在目录
directory=/path/to/my_flask_app
# user=root  # 根据实际情况选择合适的用户
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/gunicorn-err.log
stdout_logfile=/var/log/gunicorn-out.log
# environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8  # 根据需要设置环境变量

更新Supervisor配置,使用Supervisor启动Gunicorn服务:

sudo supervisorctl reread
sudo supervisorctl updatesudo supervisorctl status
# sudo supervisorctl start gunicorn
其他

如Python语法和常用操作、实例等,参见:Python简记

Django Web框架(重量级全栈框架,个人使用场景不推荐),参见:Django学习笔记

Nginx

安装

安装Nginx:

# 添加EPEL(Extra Packages for Enterprise Linux)仓库
sudo yum install -y epel-release# 安装Nginx
sudo yum install -y nginx

启动Nginx服务并设置为开机自启动:

# 启动
sudo systemctl start nginx# 设置为自启动
sudo systemctl enable nginx

验证Nginx服务正常运行:

systemctl status nginx
更多Nginx参数和命令

每次变更配置文件后,执行如下命令:

# 测试配置文件
sudo nginx -t# 重新加载配置文件
sudo nginx -s reload

更多参数和配置内容,参见:Nginx学习记要

配置静态Web服务器

创建网站根目录:

# 默认网站根目录为:/usr/share/nginx/html
# sudo mkdir -p /var/www/html# 更改权限,便于使用
sudo chmod -R 777 /usr/share/nginx/html

编辑Nginx配置文件:sudo vi /etc/nginx/nginx.conf,找到http块下的server块,修改root属性值为网站根目录即可。server块示例:

server {listen       80;listen       [::]:80;server_name  _;root         /usr/share/nginx/html;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}
}
配置动态Web服务器

将gunicorn改为不对外提供服务,修改绑定地址为本机地址:gunicorn --workers=4 --bind=127.0.0.1:8080 test:app

编辑Nginx配置文件:sudo vi /etc/nginx/nginx.conf,找到http块下的server块,添加转发到8080服务的内容。server块示例:

server {listen       80;listen       [::]:80;server_name  _;root         /usr/share/nginx/html;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}# 转发到Gunicorn的接口,移除请求路径中的"/pybackend/"前缀location /pybackend/ {proxy_pass http://127.0.0.1:8080/;  # 注意末尾的斜杠是用于移除匹配部分proxy_set_header Host $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;# 如果接口支持WebSocket,添加以下内容# proxy_http_version 1.1;# proxy_set_header Upgrade $http_upgrade;# proxy_set_header Connection "upgrade";}}

其他Web服务开发架构

Go

Go语言标准库本身就包含了完善的HTTP服务器实现,当然,也可以部署在反向代理服务器(如Nginx、Apache等)之后提供Web服务。

具体参见:
Go简记
https://blog.csdn.net/zhiyuan411/article/details/100110910#带HTML页面的Web Server
https://blog.csdn.net/zhiyuan411/article/details/100110910#一个使用了日志,数据库,并提供JSON格式返回数据的HTTP接口服务的实例

Apache/lighttpd+PHP
# 更多参见:https://httpd.apache.org/
sudo yum install httpd -y # 安装Apache# 更多参见:https://www.lighttpd.net/
sudo yum install lighttpd -y

PHP相关,参见:PHP语法摘要

Tomcat+Java(Spring)
# 默认不带Java环境,需要手动安装
sudo yum install java-1.8.0-openjdk-devel  # 安装Java 8开发环境# 下载所需版本后解压配置权限即可。更多参见:https://tomcat.apache.org/
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.87/bin/apache-tomcat-9.0.87.tar.gz

Java(Spring)后端和前端(一般配合完整的JS框架)都非常重量级,内容非常多。部分主要内容可以参考以下资料:

  1. Java 8 简记
  2. Java代码片段留存
  3. Spring Bean
  4. SpringBoot整合MyBatis从零开始
  5. Vue及Element UI&vue-element-admin简记

这篇关于阿里云服务器初始化简记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/864055

相关文章

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

【服务器运维】CentOS6 minimal 离线安装MySQL5.7

1.准备安装包(版本因人而异,所以下面的命令中版本省略,实际操作中用Tab自动补全就好了) cloog-ppl-0.15.7-1.2.el6.x86_64.rpmcpp-4.4.7-23.el6.x86_64.rpmgcc-4.4.7-23.el6.x86_64.rpmgcc-c++-4.4.7-23.el6.x86_64.rpmglibc-2.12-1.212.el6.x86_64.r

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

【新闻】AI程序员要来了吗?阿里云官宣

内容提要 6 月 21 日,在阿里云上海 AI 峰会上,阿里云宣布推出首个AI 程序员。 据介绍,这个AI程序员具备架构师、开发工程师、测试工程师等多种岗位的技能,能一站式自主完成任务分解、代码编写、测试、问题修复、代码提交整个过程,最快分钟级即可完成应用开发,大幅提升研发效率。 近段时间以来,有关AI的实践应用突破不断,全球开发者加速研发步伐。有业内人士坦言,随着大模型性能逐渐提升,AI应

在服务器上浏览图片

@StarSky 2018-10-26 15:09 字数 15971 阅读 28 https://www.zybuluo.com/StarSky/note/1294871 来源 2018-09-27 线上服务器安装 imgcat Tool   2018-09-27 线上服务器安装 imgcat 0. 准备文件:iterm2_shell_integration.bash1. 在有权限

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C++程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优化 1. 选择合适的数据类型2. 使用索引3. 优化查询4. 范式化和反范式化5. 查询重写6. 使用缓存7. 优化数据库设计8. 分析和监控9. 调整配置1、