前言:
我们来掰扯下,有多少人能以最快的方式,在阿里云Linux Centos7.x系统上快速安装好主流技术栈的环境?毕竟这个是互联网业务上线必备的技术栈。
精通Windows本地安装的同学就沉默下哈mysql开启远程连接,要的是Linux下安装;比如:Open-JDK11、Docker、Nginx、Git、Docker-Compose、Node、Npm、Mysql、RocketMQ等主流技术栈环境。
我们比的是快、准、稳,啥叫真正的一键安装,看完这篇文章你就知道了!
目录
一、阿里云云服务器介绍和ECS服务器选购
二、LTS版本丨Open-JDK11云服务器安装
三、云计算Docker环境云服务一键安装
五、高性能网关-Nginx云服务器一键安装
六、玩转MySql在云服务器一键安装和远程配置
七、云服务器 最新版NodeJS + Npm 配置
八、Git命令在阿里云Linux安装和使用
九、【综合案例】
阿里云-RocketMQ自定义容器编排一键安装部署
一、阿里云云服务器介绍和ECS服务器选购
1、介绍云厂商
阿里云新用户地址(如果地址失效,联系我或者客服即可,1折!!!!!
https://www.aliyun.com/minisite/goods?taskCode=pintuan20201212&recordId=292600&userCode=r5saexap
扫码查看优惠明细
“选购实操”及“控制台修改阿里云远程连接密码”在springboot2.3课程及AlibabaCloud课程有讲解及详细搭建部署教程。
2、环境问题说明
windows工具 putty,xshell, security CRT
参考资料:
https://jingyan.baidu.com/article/e75057f210c6dcebc91a89dd.html
https://www.jb51.net/softjc/88235.html
苹果系统MAC :通过终端登录
linux图形操作工具(用于远程连接上传文件)
mac: filezilla
windows: winscp
参考资料:
https://jingyan.baidu.com/article/ed2a5d1f346fd409f6be179a.html
可以尝试自己通过百度进行找文档, 安装mysql jdk nginx maven git redis等,也可以看我们的课程。
二、LTS版本丨Open-JDK11云服务器安装
1、介绍
作为当下最主流的编程语言,JDK安装是遇最多的,随着JDK8在业界普及,新版OracleJDK也要收费,接下来JDK11就是趋势所在,这里说下他们的区别。
OpenJDK和OracleJDK版本区别:
LTS 是啥意思?:
8u20、11u20是啥意思?就是Java的补丁,⽐如JDK8的 8u20版本、8u60版本; java11的 11u20、11u40版本
2、安装JDK8或者open-jdk11环境
资料包下载:
链接:https://pan.baidu.com/s/1n7U5uTaeCApKWJtrVCMWAw
密码:lllg
解压:tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz
重命名
vim /etc/profile
配置
JAVA_HOME=/usr/local/software/jdk11
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
环境变量立刻生效
source /etc/profile
查看安装情况 java -version
三、云计算Docker环境云服务一键安装
1、介绍
云计算+容器化是当下的主流,也是未来的趋势,就是可以快速部署启动应用,实现虚拟化,完整资源隔离,一次编写,四处运行
但有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
2、安装
依次运行以下命令添加yum源。
yum update
yum install epel-release -y
yum clean all
yum list
安装并运行Docker。
yum install docker-io -y
systemctl start docker
检查安装结果。
docker info
启动使用Docker
systemctl start docker #运行Docker守护进程
systemctl stop docker #停止Docker守护进程
systemctl restart docker #重启Docker守护进程
一个命令部署Nginx
docker run --rm --name nginx-xdclass -p 8080:80 -d nginx
--rm:容器终止运行后,自动删除容器文件。
--name nginx-xdclass:容器的名字叫做nginx-xdclass,名字自己定义.
-p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d:容器启动后,在后台运行
docker ps查看容器
docker stop 容器id
修改镜像仓库
vim /etc/docker/daemon.json
#改为下面内容,然后重启docker
{
"debug":true,"experimental":true,
"registry-mirrors":["https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
#查看信息
docker info
四、容器编排Docker-Compose安装实战
1、介绍
我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。但是微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。
使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具,容器编排工具,可以配置并启动多个容器,适合复杂业务场景。
2、安装
官方:https://docs.docker.com/compose/install/
下载安装包(比较耗时)
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
增加权限
sudo chmod +x /usr/local/bin/docker-compose
五、高性能网关-Nginx云服务器一键安装
1、介绍
据统计,世界上每3个网站中就有一个使用Nginx
市场上使用情况:阿里(Tnginx)、腾讯、百度等,全球反向代理服务器中排名前端-后端-架构-运维基本都离不开Nginx
适合人群:
后端开发工程师-中高级工程师
前端开发工程师-中高级工程师
技术leader或者架构师
测试-运维工程师
应用场景:
1)搭建前端静态资源服务器、文件服务器、BAT大厂自研运维平台数据统计案例
2)负载均衡Upstream配置实战、后端节点高可用性探测、全局异常兜底数据配置
3)Nginx封禁恶意IP、配置跨域、location和rewrite实战
4)Websocket配置、后端业务数据缓存前置、静态资源压缩
5)阿里云ECS部署Nginx + HTTPS证书
6)高级拓展Nginx整合Openresty开发内网访问限制、文件资源下载限速实现原理
7) Nginx高可用解决访问 LVS + KeepAlived讲解+多节点配置实操
2、安装
下载压缩包 并上传
http://nginx.org/en/download.html
安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
创建一个文件夹,上传本地提供的nginx包
tar -zxvf nginx-1.18.0.tar.gz
//执行命令(部分报错,可以忽略)
./configure
make
make install
默认安装路径
/usr/local/nginx
访问配置
cd /usr/local/nginx/sbin
./nginx
防火墙开放端口,阿里云网络安全组配置80端口
六、玩转MySql在云服务器一键安装和远程配置
安装Mysql 5.7
(注意,Mysql和系统务必保持一致,不然存在不一致)
开启mysql远程连接
(如果是准线上,建议不要开启远程连接)
开放阿里云网络安全组配置 3306 端口
1、下载mysql的Yum仓库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
2、安装 mysql服务
yum -y install mysql-community-server
3、启动数据库服务, systemctl 该命令可用于查看系统状态和管理系统及服务,centos7上开始使用
systemctl start mysqld.service
4、查看状态
systemctl status mysqld.service
5、在日志文件中查看初始密码
grep "password" /var/log/mysqld.log
6、进入修改Mysql密码
mysql -uroot -p
7、新密码设置必须由大小写字母、数字和特殊符号组成
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xdclass.net168';
8、开启mysql的远程访问, %是指全部
grant all privileges on *.* to 'root'@'%' identified by 'Xdclass.net168' with grant option;
9、刷新权限
flush privileges;
七、云服务器 最新版NodeJS + Npm 配置
//有源码的安装方式,执行后记得重新进入终端
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
//重新进入终端, 执行命令
nvm install stable
//验证
node -v
//切换cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
八、Git命令在阿里云Linux安装和使用
1、介绍
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
与常用的版本控制工具 CVS,Svn 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
目前世界上最先进的分布式版本控制系统(没有之一)
2、安装
yum install git-core
clone 项目https://github.com/jackxy/xd_blog
九、【综合案例】
阿里云-RocketMQ自定义容器编排一键安装部署
1、介绍
消息队列是高并发里面必备的技术,但是相关环境安装是比较复杂,目前电商业务用的比较多的是RocketMQ,支持多种常见的消息类型,而且支持分布式事务,但是本身搭建比较麻烦,基础的都包括3个服务,比如NameServer名称服务,Broker队列服务,Console控制台。
没有更好的方式进行操作部署rocketmq呢?看这个就可以mysql开启远程连接,采用docker-compose进行操作
2、安装
brokerClusterName = DefaultCluster
brokerName = broker-xdckass
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IP
brokerIP1=192.168.0.117
version: '3.5'
services:
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- ./logs:/opt/logs
- ./store:/opt/store
networks:
rmq:
aliases:
- rmqnamesrv
rmqbroker:
image: foxiswho/rocketmq:broker
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
volumes:
- ./logs:/opt/logs
- ./store:/opt/store
- ./conf/broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- 8080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqconsole
networks:
rmq:
name: rmq
driver: bridge
//启动
docker-compose up
//检查网络安全组是否开放端口
总结:
上面的我们在Linux云服务器的常见环境安装,而且多采用在线安装,部分采用docker容器化部署。
这个对于提高我们开发效率很大帮助,也特别建议购买阿里云,进行部署上面的各个环境,昨晚的录播视频现在可以观看,后续会下线掉录播视频,大家在12月份最好先学完,轻松掌握各个环境的安装。
最后希望各位小伙伴:
“学而精之,精而深之,深而新之 ”