本文介绍: AWS EC2 实例 Amazon Linux release 2023 (Amazon Linux) 操作系统安装 dockerdocker 安装 jdknginxnacosredis、Sentinel Dashboard部署前后端分离的医疗管理后台系统

授权声明:本篇文章授权活动官方亚马逊科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台第三方开发者媒体等亚马逊科技官方渠道  

目录

一、AWS 产品类别选择

(1)应用服务器选择 

(2)数据服务器选择 

(3)存储云盘选择

二、前置准备 

(1)域名准备、证书申请、网站备案、AWS 启动新实例、端口开放 

(2)AWS 连接实例

(3)查看操作系统信息 

三、EC2 实例安装 docker

(1)更新系统软件包 

(2)安装 docker 所需的依赖项 

(3)启动 docker 服务并设置开机自启动

(4)验证 docker 是否安装成功

(5)查看已安装的 docker 版本号 

(6)查找 docker 可执行文件的实际路径 

四、EC2 实例使用 docker 安装 jdk

(1)查找 Docker Hub 上的 Dragonwell JDK 镜像

(2)拉取 Dragonwell JDK 镜像

(3)运行 Dragonwell JDK 容器

(4)查看容器的状态 

(5)启动容器并进入其交互式 shell 查看 jdk 版本

五、docker 安装 nginx、nacos、redis、sentinel

(1)安装:nginx 

(2)安装:nacos

(3)安装:redis

(4)安装:sentinel

六、docker 启动 nginx、nacos、redis、sentinel

(1)启动:nginx 

(2)启动:nacos

(3)启动:redis

(4)启动:sentinel

七、部署证书到 EC2 实例

(1)证书申请 

(2)上传证书到服务器  

八、EC2 实例部署前后端代码

(1)服务器创建存放前端代码的目录 

(2)服务器创建存放后端代码的目录  

九、设置 nginx 配置文件

(1)文件路径

(2)设置配置文件 

① xxx.conf 

② xxx443.conf

(3)EC2 实例重启 nginx 服务

十、浏览器访问网站 

(1)访问:nacos 

(2)访问:Sentinel Dashboard

(3)访问:医疗管理后台系统 



一、AWS 产品类别选择

(1)应用服务器选择 

用于部署网站应用前后端代码服务器开发/测试/预发布/正式环境 Linux 服务器

亚马逊科技产品测评』活动征文|AWS 云服务器 EC2 实例类型及其适用场景详细说明icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134263726


(2)数据服务器选择 

用于部署数据库服务器:MySQL、Redis …

亚马逊科技产品测评』活动征文|AWS 数据库产品类别及其适用场景详细说明icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134554322


(3)存储云盘选择

用于扩展应用存储空间,挂载在应用服务器上的存储云盘,数据盘。

亚马逊科技产品测评』活动征文|AWS 存储产品类别及其适用场景详细说明icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134558112



二、前置准备 

(1)域名准备证书申请、网站备案、AWS 启动实例端口开放 

  1. 注册域名:由于 AWS 不提供网站备案操作,为了方便,本人使用阿里注册域名。
  2. 申请证书阿里注册域名之后,进行申请证书
  3. 解析域名:阿里云域名证书申请之后,使用阿里解析域名
  4. 个人网站 ICP 备案:要在中国境内访问域名网站,必须完成网站备案,无需使用域名的,则可以准备域名,直接使用应用服务器公网 IP 加端口访问即可
  5. AWS 启动实例选择并购买合适的应用服务器数据服务器、挂载存储云盘后,进入控制台启动实例
  6. AWS 端口开放:端口开放可以启动实例步骤中完成,后续也可以修改安全组” 添加新端口完成开放端口。

亚马逊科技产品测评』活动征文|AWS 域名注册启动连接 EC2 新实例、端口开放详细教程icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134580241

【Linux】Centos 8 服务器部署:阿里云域名注册、域名解析、个人网站 ICP 备案详细教程icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134033592

【Linux】Centos 8 服务部署阿里云域名申请免费 SSL 证书详细教程icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134037311

  • AWS 域名:如果无需中国境内访问网站,可以直接使用 AWS 完成域名注册、申请证书、域名解析,之后直接使用 AWS 域名,无需进行网站备案
  • 阿里云域名:网站备案是中国境内要求的,所以如果中国境内需要访问域名网站,就需要完成备案,看个人需要选择,如果是国内访问,建议使用阿里云域名,阿里云域名能完成域名注册、申请证书、网站备案、域名解析全部操作,统一快捷方便,操作简单

(2)AWS 连接实例

AWS 启动新实例后,即可连接实例 


(3)查看操作系统信息 

  1. 操作系统发行版详细信息: 
    cat /etc/os-release
  2. 当前操作系统发行版信息
    cat /etc/system-release

CPU & 内存 1 核 (vCPU) 2 GiB
操作系统 Amazon Linux release 2023 (Amazon Linux)
详细信息
  • 名称 (NAME): Amazon Linux
  • 版本 (VERSION): 2023
  • ID: amzn
  • ID 类似 (ID_LIKE): fedora
  • 版本 ID (VERSION_ID): 2023
  • 平台 ID (PLATFORM_ID): platform:al2023
  • 可读名称 (PRETTY_NAME): Amazon Linux 2023
  • ANSI 色彩 (ANSI_COLOR): 0;33
  • CPE 名称 (CPE_NAME): cpe:2.3:o:amazon:amazon_linux:2023
  • 主页网址 (HOME_URL): https://aws.amazon.com/linux/
  • 错误报告网址 (BUG_REPORT_URL): https://github.com/amazonlinux/amazon-linux-2023
  • 支持截止日期 (SUPPORT_END): 2028-03-15

Linux 命令的系统版本为:Amazon Linux release 2023 (Amazon Linux) 

这个和 Centos 用到的命令不同,全部命令会有专属一套命令,所以启动新实例时,所选的 AMI 版本十分重要,每个版本都有其对应的 Linux 命令



三、EC2 实例安装 docker

(1)更新系统软件包 

sudo yum update -y


(2)安装 docker 所需的依赖项 

sudo amazon-linux-extras install docker


(3)启动 docker 服务设置开机自启动

sudo systemctl enable docker.service
sudo systemctl start docker.service


(4)验证 docker 是否安装成功

sudo docker run hello-world


(5)查看已安装的 docker 版本号 

sudo docker version


(6)查找 docker 可执行文件的实际路径 

which docker

  1. Docker 的默认安装路径可以根据不同的操作系统而有所不同,通常情况下,在大多数 Linux 系统上,Docker 的可执行文件和相关文件位于 /usr/bin/docker 路径下。 
  2. Docker 的数据目录(例如镜像容器数据)通常位于默认的 /var/lib/docker 路径下,如果想了解 Docker 数据存储路径,可以检查 Docker 服务配置文件,通常在 /etc/docker/daemon.json 文件中。
  3. 如果在安装 Docker 时选择了非默认路径或使用了其他定制方法,则 Docker 的安装路径可能会有所不同。


四、EC2 实例使用 docker 安装 jdk

根据需求安装指定版本示例需要指定安装的 jdk 版本为:Dragonwell  11


(1)查找 Docker Hub 上的 Dragonwell JDK 镜像

sudo docker pull adoptopenjdk/dragonwell:8u292_10-jdk

需要拉取镜像为:falconia/dragonwell11


(2)拉取 Dragonwell JDK 镜像

sudo docker pull falconia/dragonwell11

注意此处创建容器名称为:falconia/dragonwell11


(3)运行 Dragonwell JDK 容器

容器名称为:falconia/dragonwell11

容器名称重命名为:dragonwell-jdk

命令的详细解释】

这样,就可以使用 “/dragonwell-jdk” 作为容器名称运行 Dragonwell JDK 11 容器,并将本地目录 “/home/user/myapp” 挂载到容器的 “/myapp目录中。

sudo docker run --name dragonwell-jdk -v /home/user/myapp:/myapp -d falconia/dragonwell11:latest


(4)查看容器的状态 

sudo docker ps -a

列出所有容器的状态:如果 “dragonwell-jdk” 容器的状态不是 “Up”,则表示容器没有运行。 


(5)启动容器并进入交互式 shell 查看 jdk 版本

sudo docker start -i dragonwell-jdk

可以查看到 jdk 版本号,并进入 shell 则代表安装 jdk 成功,版本号为:11.0.7.2



五、docker 安装 nginxnacosredis、sentinel

(1)安装:nginx 

sudo docker search nginx

需要拉取的镜像为:nginx

sudo docker pull nginx

注意此处创建的容器名称为:nginx


(2)安装:nacos

sudo docker pull nacos/nacos-server

注意此处创建的容器名称为:nacos/nacosserver


(3)安装:redis

sudo docker pull redis

注意此处创建的容器名称为:redis


(4)安装:sentinel

sudo docker pull bladex/sentinel-dashboard

注意此处创建的容器名称为:bladex/sentinel-dashboard



六、docker 启动 nginx、nacosredis、sentinel

注意:在这之前必须先开放自定义端口,前置准备步骤中的 “端口开放” 的端口会在此步骤应用!!!


(1)启动:nginx 

sudo docker run -p 80:80 -p 443:443 --name nginx 
-v /mydata/nginx/html:/usr/share/nginx/html 
-v /mydata/nginx/logs:/var/log/nginx  
-v /mydata/nginx/conf:/etc/nginx/conf 
-d nginx

容器名称为:nginx

  • 运行该命令将启动一个名为 “nginx” 的容器
  • 并将容器的 HTTP 端口映射到主机的端口 80,HTTPS 端口映射到主机的端口 443
  • 在运行命令之后,能够通过主机的相应端口访问 Nginx 服务;同时,可以在宿主机编辑网页内容查看日志和编辑配置文件

【命令的详细解释】

  • -p 80:80 -p 443:443:将容器的端口 80 和 443 映射到主机的相应端口,可以根据需要进行端口映射的修改
  • name nginx:指定容器名称为 “nginx”,可根据自己的需要自定义修改名称。
  • -v /mydata/nginx/html:/usr/share/nginx/html:将宿主机上 “/mydata/nginx/html” 目录映射到容器中 Nginx 的 HTML 根目录 “/usr/share/nginx/html”,这样就可以在宿主机上编辑网页内容
  • -v /mydata/nginx/logs:/var/log/nginx:将宿主机上 “/mydata/nginx/logs” 目录映射到容器中 Nginx 的日志目录 “/var/log/nginx”,这样就可以在宿主机查看 Nginx 的日志
  • -v /mydata/nginx/conf:/etc/nginx:将宿主机上 “/mydata/nginx/conf” 目录映射到容器中 Nginx 的配置目录 “/etc/nginx”,这样就可以在宿主机上编辑 Nginx 的配置文件
  • -d nginx:使用 nginx 镜像在后台模式下运行容器。 


(2)启动:nacos

sudo docker run --name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true --restart=always -e MODE=standalone -e PREFER_HOST_MODE=hostname nacos/nacos-server

容器名称为:nacos/nacos-server

  • 运行该命令将启动 nacos/nacos-server 容器,并将容器命名为 “nacos”
  • 并将容器的端口 8848、9848 和 9849 映射到主机的相应端口
  • 在运行命令之后,能够在主机的相应端口上访问 Nacos 服务

【命令的详细解释】

  • –name nacos:指定容器名称为 “nacos”,可根据自己的需要自定义修改名称
  • -d:在后台模式下运行容器
  • -p 8848:8848 -p 9848:9848 -p 9849:9849:将容器的端口 8848、9848 和 9849 映射到主机的相应端口,可以根据需要进行端口映射的修改。
  • –privileged=true:给容器赋予特权模式,以便容器内的进程可以访问主机的部分资源
  • –restart=always:设置容器总是在退出后自动重启。
  • -e MODE=standalone:设置 Nacos 启动模式为单机模式。
  • -e PREFER_HOST_MODE=hostname:设置容器主机名作为 Nacos 的拓扑节点名称。
  • nacos/nacos-server基于 nacos/nacos-server 镜像的启动容器。


(3)启动:redis

sudo docker run -d -p 6379:6379 --name redis -v /mydata/redis/data:/data redis redis-server --appendonly yes --requirepass GuSanShangMiMa

sudo docker run -d -p 6379:6379 --name redis -v /mydata/redis/data:/data redis redis-server --appendonly yes --requirepass 8888

容器名称为:redis

  • 运行该命令将启动一个名为 “redis” 的容器
  • 并将容器的端口 6379 映射到主机的端口 6379
  • 注意:GuSanShangMiMa 需要替换成自己的 redis 服务器密码
  • 执行命令后,能够通过主机的端口 6379 访问 Redis 服务,并且 Redis 数据会持久化到主机上指定的目录

【命令的详细解释】

  • -d:在后台模式下运行容器。
  • -p 6379:6379:将容器的 6379 端口映射到主机的 6379 端口。
  • –name redis:指定容器名称为 “redis”,可以根据自己的需求修改名称。
  • -v /mydata/redis/data:/data:将主机上的 “/mydata/redis/data” 目录映射到容器中的 “/data” 目录,这样可以在主机上持久化 Redis 的数据。
  • redis:使用 redis 镜像来运行容器。
  • redis-server –appendonly yes –requirepass GuSanShangMiMa:在容器中运行 Redis 服务器,并开启持久化功能(AOF 方式);此外,还设置了 Redis 的密码为 “GuSanShangMiMa”,可以根据需要修改密码。 


(4)启动:sentinel

sudo docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard

容器名称为:bladex/sentinel-dashboard

  • 运行该命令将启动一个名为 “sentinel” 的容器
  • 并将容器的端口 8858 映射到主机的端口 8858
  • 执行命令后,能够通过主机的端口 8858 访问 Sentinel Dashboard,并监控 Sentinel 集群

【命令的详细解释】

  • –name sentinel:指定容器名称为 “sentinel”,可以根据自己的需要修改名称。
  • -d:在后台模式下运行容器,使其在后台持续运行。
  • -p 8858:8858:将容器的端口 8858 映射到主机的端口 8858,可以根据需要进行端口映射的修改。
  • bladex/sentinel-dashboard:使用 bladex/sentinel-dashboard 镜像的最新版本来运行容器,如果想使用特定的版本,可以修改为相应的镜像标签



七、部署证书到 EC2 实例

(1)证书申请 

  1. 由于 AWS 不提供网站备案操作,为了方便,本人使用阿里云注册域名,因此域名申请证书也在阿里云域名控制台完成。
  2. 在阿里云域名平台下载证书文件上传 EC2 服务器即可生效。

【Linux】Centos 8 服务器部署:阿里云域名申请免费 SSL 证书详细教程icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/134037311


(2)上传证书到服务器  



八、EC2 实例部署前后端代码

为了方便操作,这里使用远程连接工具 FinalShell 进行操作:
【FinalShell】win 10 / win 11:FinalShell 远程连接 Linux 服务器icon-default.png?t=N7T8https://gusanshang.blog.csdn.net/article/details/121360151


(1)服务器创建存放前端代码的目录 


(2)服务器创建存放后端代码的目录  



九、设置 nginx 配置文件

(1)文件路径

nginx 配置文件路径:/mydata/nginx/conf 


(2)设置配置文件 

修改 2 个证书内容,并将上传的域名证书的路径配置上: 

xxx.conf 

xxx443.conf


(3)EC2 实例重启 nginx 服务

docker restart nginx



十、浏览器访问网站 

配置完成后,成功访问网站则代表前后端代码分离的网站已成功完成设置。 

(1)访问:nacos 

启用完成后,可以用 ESC 应用服务器 ip 加上 nacos 端口看是否支持访问:
http://服务器 ip:8848/nacos/#/login

【默认账号

用户nacos

密码nacos


(2)访问:Sentinel Dashboard

启用完成后,可以用 ESC 应用服务器 ip 加上 sentinel 端口看是否支持访问:

http://服务器 ip:8858/#/login

【默认账号

用户sentinel

密码sentinel


(3)访问:医疗管理后台系统 

原文地址:https://blog.csdn.net/qq_39720249/article/details/134610017

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_2613.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注