OpenResty是一个基于Nginx的可伸缩的Web平台,它由Lua编程语言构建而成。OpenResty将Nginx作为核心服务器,并通过在Nginx中嵌入Lua脚本来扩展其功能。
本次实践为个人测试环境,操作系统版本为openEuler 22.03。
hostname | 本地P地址 | 操作系统版本 | 内核版本 | Docker版本 |
---|---|---|---|---|
openEuler | 192.168.3.125 | openEuler 22.03 | 5.10.0-153.12.0.92.oe2203sp2.x86_64 | 24.0.7 |
1.本次实践部署环境为个人测试环境; 2.在openEuler环境下部署Docker环境; 3.使用OpenResty部署一个web应用。
检查当前操作系统版本,当前操作系统版本为openEuler 22.03。
[root@openEuler ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 (LTS-SP2)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP2)"
ANSI_COLOR="0;31"
检查内核版本,当前操作系统内核版本为5.10.0-153.12.0.92.oe2203sp2.x86_64。
[root@openEuler ~]# uname -r
5.10.0-153.12.0.92.oe2203sp2.x86_64
检查当前是否安装Docker环境,没有安装可看下面的Docker环境部署过程。
[root@openEuler ~]# docker -v
-bash: docker: command not found
执行以下命令,安装Docker环境相关依赖包。
dnf install -y dnf-utils device-mapper-persistent-data lvm2 fuse-overlayfs wget
添加docker-ce.repo源,本次使用的华为云的镜像源。
dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+$releasever+7+' /etc/yum.repos.d/docker-ce.repo
更新缓存
dnf makecache
检查yum仓库状态
[root@openEuler yum.repos.d]# dnf repolist enabled
repo id repo name
EPOL EPOL
OS OS
debuginfo debuginfo
docker-ce-stable Docker CE Stable - x86_64
everything everything
source source
update update
update-source update-source
执行以下命令,使用dnf安装docker。
dnf install -y docker-ce
执行以下命令,开启路由转发功能。
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
在/etc/rc.d/rc.local文件中,写入以下内容:
vim /etc/rc.d/rc.local
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
启动Docker服务,并设置开机自启。
systemctl enable --now docker
查看当前Docker服务状态
[root@openEuler ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2024-01-17 17:23:17 CST; 2min 16s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 2047 (dockerd)
Tasks: 9
Memory: 29.7M
CGroup: /system.slice/docker.service
└─ 2047 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jan 17 17:23:12 openEuler systemd[1]: Starting Docker Application Container Engine...
Jan 17 17:23:12 openEuler dockerd[2047]: time="2024-01-17T17:23:12.099328424+08:00" level=info msg="Starting up"
Jan 17 17:23:13 openEuler dockerd[2047]: time="2024-01-17T17:23:13.205841306+08:00" level=info msg="Loading containers: star>
Jan 17 17:23:14 openEuler dockerd[2047]: time="2024-01-17T17:23:14.562904207+08:00" level=info msg="Firewalld: interface doc>
Jan 17 17:23:15 openEuler dockerd[2047]: time="2024-01-17T17:23:15.776656547+08:00" level=info msg="Loading containers: done>
Jan 17 17:23:16 openEuler dockerd[2047]: time="2024-01-17T17:23:16.314188764+08:00" level=info msg="Docker daemon" commit=31>
Jan 17 17:23:16 openEuler dockerd[2047]: time="2024-01-17T17:23:16.314426535+08:00" level=info msg="Daemon has completed ini>
Jan 17 17:23:17 openEuler dockerd[2047]: time="2024-01-17T17:23:17.170648967+08:00" level=info msg="API listen on /run/docke>
Jan 17 17:23:17 openEuler systemd[1]: Started Docker Application Container Engine.
执行以下命令,配置Docker镜像加速。
echo '{ "registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"] }' > /etc/docker/daemon.json
systemctl daemon-reload && systemctl restart docker
创建挂载目录/data/openresty/nginx/{conf,logs,html}
[root@openEuler ~]# mkdir -p /data/openresty/nginx/{conf,logs,html}
[root@openEuler ~]# cd /data/openresty/
在docker hub拉取openresty镜像
[root@openEuler openresty]# docker pull openresty/openresty
Using default tag: latest
latest: Pulling from openresty/openresty
b5a0d5c14ba9: Pull complete
888d97642d94: Pull complete
581783ef2103: Pull complete
18ae657ec283: Pull complete
Digest: sha256:200d719be42b7748019d72f6fd983798b2e9453b2926b1b82d49c7b8109a8c52
Status: Downloaded newer image for openresty/openresty:latest
docker.io/openresty/openresty:latest
执行以下命令,创建openresty测试容器。
docker run --name openresty \
-p 80:80 \
-d openresty/openresty
访问地址:http://192.168.3.125,进入到openresty默认首页。如果无法访问到此页面,请检查本地防火墙是否关闭或放行相关端口,云服务器则需要设置安全组。
拷贝nginx配置文件
[root@openEuler openresty]# docker cp openresty:/usr/local/openresty/nginx/conf/nginx.conf /data/openresty/nginx/conf
Successfully copied 4.61kB to /data/openresty/nginx/conf
删除测试容器
docker rm -f openresty
执行以下命令,创建openresty容器。
docker run -d \
-p 8015:80 \
--name openresty \
--restart always \
-v /data/openresty/nginx/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf \
-v /data/openresty/nginx/logs:/usr/local/openresty/nginx/logs \
-v /data/openresty/nginx/html:/usr/local/openresty/nginx/html \
-v /etc/localtime:/etc/localtime \
openresty/openresty
查看openresty容器状态,确保openresty容器正常启动。
[root@openEuler openresty]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fab6942b57d2 openresty/openresty "/usr/bin/openresty …" 18 seconds ago Up 15 seconds 0.0.0.0:8015->80/tcp, :::8015->80/tcp openresty
进入OpenRestry的根目录
cd /data/openresty/nginx/html
下载my-mind源码包
git clone https://github.com/ondras/my-mind.git
查看my-mind目录内容
[root@openEuler html]# ls my-mind
css examples github.png index.html logo map.css my-mind.js PRIVACY.txt screenshot.png
editor.html favicon.ico img LICENSE.txt Makefile my-mind.css package.json README.md src
重启openresty容器
[root@openEuler html]# docker restart openresty
openresty
访问地址:http://192.168.3.125:8015/my-mind/index.html,将IP替换为自己服务器的IP地址,访问my-mind首页。
本次实践《OpenRestry实践 | 在openEuler系统下部署web应用》成功完成。需要注意的是,目前流行的Docker一键部署脚本不支持openEuler系统,因此需要手动在openEuler上逐步安装Docker。使用Docker方式部署OpenResty服务非常方便和快捷,小白也可以快速上手。OpenResty使用体验很好,响应快速,应用没有卡顿,OpenResty是一个功能强大且性能优异的Web平台!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。