一文精通云服务安装JDK11/Mysql/Nginx/Docker/Compose/Node/Git/Rocketmq容器编排
LTS版本丨Open-JDK11云服务器安装
-
OpenJDK是JDK的开放源码版本,以GPL协议的形式发布(General Public License)
-
Oracle JDK采⽤了商业实现
-
Long Term Support ⻓期⽀持的版本,如JDK8、JDK11都是属于LTS
-
JDK9 和 JDK10 这两个被称为“功能性的版本”不同, 两者均只提供半年的技术⽀持
-
甲⻣⽂释出Java的政策,每6个⽉会有⼀个版本的释出,⻓期⽀持版本每三年发布⼀次,根据 后续的发布计划,下 ⼀个⻓期⽀持版 Java 17 将于2021年发布
8u20、11u20是啥意思?就是Java的补丁,⽐如JDK8的 8u20版本、8u60版本; java11的 11u20、11u40版本
2、安装JDK8或者open-jdk11环境
解压: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是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用
2、安装
依次运行以下命令添加yum源。yum updateyum install epel-release -yyum clean allyum list
安装并运行Docker。yum install docker-io -ysystemctl start docker
检查安装结果。docker info
启动使用Dockersystemctl start docker #运行Docker守护进程systemctl stop docker #停止Docker守护进程systemctl restart docker #重启Docker守护进程
一个命令部署Nginxdocker 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云服务器一键安装
据统计,世界上每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
//切换cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org
八、Git命令在阿里云Linux安装和使用
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
与常用的版本控制工具 CVS,Svn 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
目前世界上最先进的分布式版本控制系统(没有之一)
2、安装
yum install git-core
clone 项目https://github.com/jackxy/xd_blog
九、【综合案例】
阿里云-RocketMQ自定义容器编排一键安装部署
消息队列是高并发里面必备的技术,但是相关环境安装是比较复杂,目前电商业务用的比较多的是RocketMQ,支持多种常见的消息类型,而且支持分布式事务,但是本身搭建比较麻烦,基础的都包括3个服务,比如NameServer名称服务,Broker队列服务,Console控制台。
没有更好的方式进行操作部署rocketmq呢? 看这个就可以,采用docker-compose进行操作
2、安装
-
创建目录:
-
broker.conf
brokerClusterName = DefaultCluster brokerName = broker-xdckassbrokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH # 如果是本地程序调用云主机 mq,这个需要设置成 云主机 IPbrokerIP1=192.168.0.117
-
docker-compose.yml
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: - rmqconsolenetworks: rmq: name: rmq driver: bridge
-
启动
//启动docker-compose up
//检查网络安全组是否开放端口
上面的我们在Linux云服务器的常见环境安装,而且多采用在线安装,部分采用docker容器化部署。

浙公网安备 33010602011771号