docker配置egg后端、nginx服务

docker上部署egg项目——图文详解 docker上部署egg项目——图文详解 一、部署环境准备: 腾讯云服务器上的cetnos7(或者VMware上的cetnos7——”需要能够联网”)。 linux上安装好了docker。 熟悉egg脚手架的安装。链接: 官网安装教程 了解dockerfile的编写 目录说明:linux上egg的安装目录/home/dockerfile/egg-example,会和docker里的egg项目的/home/dockerfile/egg-example进行挂载。 二、安装教程: (1)安装egg脚手架 / 阅读详情

使用docker搭建node egg服务器

小记自己使用docker第一次搭建egg服务器记录
docker+egg+nginx+redis+mysql

安装docker

  1. 安装系统工具yum install yum-utils device-mapper-persistent-data lvm2
  2. 添加软件源信息yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装dockeryum install docker-ce docker-ce-cli containerd.io
  4. 启动dockersystemctl start docker

安装mysql

有需要在本机安装mysql的按照以下步骤操作,使用docker安装mysql需注意数据持久化!!!

  1. 下载mysql镜像docker pull daocloud.io/library/mysql:5.7.5我这里选择了国内的镜像源,也可直接docker pull mysql:5.7.5
  2. 查看镜像是否下载成功docker images
  3. 启动并配置mysql容器docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 YourImageId,注意此处的YourImageId为你自己下载的mysql镜像id,即第二步命令中查看到的imageId
  4. 查看mysql是否启动成功,docker ps
  5. 进入mysql容器命令行docker exec -it YouContainerId sh
  6. 进入mysqlmysql -u root -p
  7. 退出使用exit;
  8. 如果启动失败,使用docker logs -f YourContainerId查看docker日志文件
  9. 我使用轻量应用服务器配置过程中,出现过mysql容器启动后自动停止,经查日志发现是swap分区没有配置,参考了文档解决,小记一下解决方法
  • 查看内存free,发现swap是0…
  • sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
  • sudo mkswap /swapfile
  • sudo swapon /swapfile
  • 操作详细

安装redis

  1. 下载redis镜像docker pull daocloud.io/library/redis:6.0.5,也可docker pull redis:6.0.5
  2. 运行redisdocker run -d -p 6379:6379 --name redis YourContainerId

安装node

  1. 下载node镜像docker pull node:16.0.0

安装git

  1. 安装gityum install git
  2. 配置git秘钥ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
  3. 配置git用户git config --global user.name "username"邮箱git config --global user.email "email"

安装nginx

  1. 下载nginx镜像docker pull daocloud.io/library/nginx:1.12.0也可docker pull nginx:1.12.0
  2. 本地新建nginx文件,做基础配置
  3. 进入根目录cd ~>
  4. 创建cd ~> mkdir nginx> cd nginx> mkdir conf.d> cd conf.d> touch default.conf> vi default.conf
  5. 输入或复制以下内容
    nginx配置
  6. 创建nginx.concd ~/nginx> vi nginx.conf,复制以下内容,
    原因:docker开启nginx使用的用户时nginx,需更改用户为root,并将配置映射至容器中
    参考文章
    nginxconf配置
  7. 启动nginxdocker run --name nginx -d -p 8080:8080 -v /root/nginx/log:/var/log/nginx -v /root/nginx/conf.d:/etc/nginx/conf.d -v /root/nginx/dist:/usr/share/nginx/dist -v /root/public:/root/public -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf YourContainerId
  • 映射1:nginx日志
  • 映射2:nginx配置
  • 映射3:前端文件
  • 映射4:存储的静态文件
  • 映射5:nginx.conf(为更改nginx启动用户)
  1. 查看nginx是否启动成功docker ps

启动后端服务

  1. 下载node镜像docker pull node:16.0.0
  2. git拉取后端代码git clone yourGitAddress
  3. 修改package.json中的启动命令,例如(需注意要去除–daemon,并优先npm run tsc):启动命令
  4. 进入后端根目录,创建Dockfiletouch Dockfile
  5. 编辑Dockerfile(此处FROM node会自动拉取node镜像)Dockerfile内容
  6. 上传前端包到~/nginx,可使用ftp,window上传文件命令行参考文档
  7. 根据后端文件Dockerfile生成docker镜像docker build -t service:1.0 ~/service
  8. 查看后端镜像docker ps
  9. 启动后端容器docker run --name service -d -p 7010:7010 -v /root/public:/egg/public YourContainerId,此处的映射为我服务器的文件存储位置(我的文件为存储至服务器本地,受公司限制,也可存储至云,则nginx、后端服务不再需要该映射),将其映射到容器方便读写,另外建议将egg的log日志也映射到容器中,保证日志文件不会丢失
  10. 查看后端容器docker ps
  • 注意后端config配置中的mysql、redis等地址,不要使用localhost/127.0.0.1,会请求到该容器中的端口,无法请求到实际宿主本机中的端口,需变更为内网地址如:192.168.55.55:3306

持续更新,小白初学,大神勿喷
参考文章

快速入门Egg服务器架构 app/controller/** :用于解析用户的输入,处理后返回相应的结果app/public/**: 用于放置静态资源(和前端相关的文件js、css、html放在public下面可以直接访问到)app/router.js:用于配置URL路由规则(自己创建路由返回内容就在这里配置)在这里egg既是前端服务器也是后端服务器app/controller/** =>存放后端的响应给前端的内容app/public/**======>存放前端的代码。 阅读详情

相关推荐

nginx获取代理服务ip及客户端真实ip

一、问题背景   在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用 request.getRemoteAddr() 就可以获取到客户端ip,但是当我们使用了nginx 作为反向代理后,使用 request.getRemoteAddr() 获取到的就一直是nginx 服务器的ip的地址,那这时应该怎么办? 首先,一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。如果你的服务器有用Nginx做负载均衡的话,你

云深海阔专栏 1万+

使用Docker构建egg项目

本文介绍如何通过Docker构建部署一个egg服务。下文介绍如何通过docker-compose部署egg。 查看原文 创建DockerFile文件 FROM node:14 LABEL author="caihaifei@enjoytoday.cn" WORKDIR /app COPY package.json /app/package.json RUN npm config set registry https://registry.npm.taobao.org RUN npm i COPY .

胖蔡叨叨叨 1625

共享单车数据抓取与分析:使用Python爬虫抓取共享单车使用数据与地图信息

通过本篇博客,我们展示了如何使用Python爬虫抓取共享单车的使用数据和地图信息,并通过简单的数据分析得出有价值的见解。在实际应用中,数据的收集与分析不仅能帮助城市管理者更好地规划单车站点,还能为用户提供更精准的单车使用体验。未来,我们可以将此分析与机器学习模型相结合,进一步预测单车的使用趋势,优化调度算法,实现更加智能的共享单车管理。

2201_76125261的博客 2183

docker 部署后端egg.js纯净版之Dockerfile

1:在 egg 项目的 package.json 文件中,在 start 启动项中,--daemon 是后台启动。如果使用 docker 容器,需要去除 --daemon。在本地npm run dev 是正确的运行的,地址是http://127.0.0.1:7001。2:进入我的 项目根目录,执行镜像打包命令, 该镜像的名称为myegg。只是我改了端口7001,并在阿里云的防火窗开了端口7001。能够看到名称为myegg的容器 状态是up。如果发现容器没有正常启动,可以执行。命令,查看容器内的执行日志。

deng_zhihao692817的专栏 1101

docker中部署egg项目

记一次服务器中使用docker部署egg项目下载docker下载mysql运行mysql配置密码进入mysql下载redis运行redis 同时设置密码下载nginx上传服务器文件部署启动nginx前端:修改 egg 配置文件后端:根目录 新增 Dockerfile 用于构建镜像Dockerfile的配置生成镜像文件运行镜像常见问题mysql版本注意服务器端口是否开通Dockerfile 名字不能错,否则会找不到 下载docker 下载docker的时候,参考了阿里云的配置方案,附上一个链接: 链接: li

m0_38013931的博客 2586

docker搭建egg项目

docker ps 未能看见对应启动的egg服务器,同时访问7001端口不能访问,--daemon 参数 去掉就好

我叫火柴 1237

三,腾讯云服务器配置vue打包静态项目和egg后端项目

一,购买云服务自行百度 二,配置 1,购买完成后会首先配置一下服务器密码 image.png 有公网ip这个就是云服务器ip地址 点击登录,进到服务器环境 或者在本地登录 ssh root@ip地址 然后输入密码 或者免密登录 按照https://liuyanzhao.com/6952.html配置 我的云服务器系统是CentOS7系统里面什么都没安装 首先安装一...

程序员蜗牛的博客 648

Vue2-elm项目部署指南:前端构建到Node.js后台集成的完整流程

想要将你的Vue2电商项目成功部署上线吗?本指南将详细介绍从Vue2前端构建到Node.js后台集成的完整部署流程,帮助你快速掌握Vue2-elm项目部署的核心技巧和最佳实践。无论你是前端新手还是有一定经验的开发者,通过这篇完整的Vue2项目部署教程,都能轻松掌握前后端分离项目的部署方法。 ## 🚀 项目架构概述 Vue2-elm项目采用现代化的前后端分离架构,前端使用Vue2.5框架配合V

gitblog_02421的博客 450

Eggblog博客部署文档

本文整理了Egg-blog个人博客的部署文档和相关补充说明。主要内容包括: 部署MinIO的两种方案: 安装MinIO 2022-01版本,提供详细的Dockerdocker-compose配置 使用minio-client命令行设置桶访问策略,替代原帖的S3策略 部署一言接口的Docker配置,需配合Redis使用 音乐模块(GlassMusicPlayer)的部署指南: 环境要求(Node.js≥22, pnpm≥10) 快速启动步骤 环境变量配置说明 可用脚本列表 Nginx配置示例: 前台管理界面

AmazningEgg的博客 777

docker-compose 部署eggjs

1.目录结构 docker-compose.yaml Dockerfile egg 2.docker-compose.yaml version: '2' services: egg_test: build: . ports: - "3002:7001" 3.Dockerfile FROM node:16.3.0 RUN mkdir -p /home/dockerfile/egg-example WORKDIR /home/dockerfile/egg-

Cool的博客 1174

docker部署eggjs项目,搭建数据库环境 mysql, redis

使用docker部署eggjs项目,看这篇文章之前建议您熟悉一下docker的基本命令 安装 redis # 拉取redis镜像 docker pull redis # 启动容器 docker run -itd --name redis-server -p 6379:6379 redis 安装 mysql # 拉取mysql镜像 docker pull mysql:5.7 # 启动容器 docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASS

weixin_43960320的博客 1005

Egg+nginx+Sunny-Ngrok本地部署Https环境

最近使用 Egg 写了一个简单的接口,因为要在小程序上测试,所以本地部署一个 Https 环境,使用 Sunny-Ngrok 做内网穿透,官方教程看的不是很明白,踩了不少坑,所以完整的记录一下整个流程。 流程如下: 1、买域名,申请免费证书(本文以腾讯云为例) 2、部署证书到本地的 nginx 服务器上 3、启动 Sunny-Ngrok 隧道,访问本地服务 4、nginx 转发本地的egg接口 完成以上四步后,可以实现再浏览器访问https连接后,通过 Sunny-Ngrok 可以访问本地的某个地址,然后通

weixin_44183460的博客 825

NginxEgg.js配置Https请求

NginxEgg.js配置Https请求

weixin_45086164的博客 890

Nginx+Egg.js配置Https

为基于NginxEgg.js后端环境配置https:nginx.conf与config.default.js

xiaosuom 1314

egg项目服务器部署,egg部署到服务器

egg部署到服务器心血来潮拿egg写了一些接口,本篇记录一次egg通过宝塔部署到服务器的流程首先服务器用的是腾讯云 标准型S4服务器话不多说进入正题首先第一步:安装宝塔宝塔Linux面板是提升运维效率的服务器管理软件宝塔这个东西对于第一次接触服务器的同学来说简直的太友好了。安装宝塔的第一步就是去腾讯云新建一个安全组,然后放开8888接口然后打开腾讯云服务器终端执行下面这个命令安装宝塔yum ins...

weixin_28993311的博客 2018

docker部署后端egg.jsdocker-compose

其实docker-compose.yml 文件的意思就是通过 代码,读取Dockerfile文件,自动帮你构建了镜像和开启了容器。通过docker-compose ps命令 状态是up,给你构建了 image镜像 和 container容器。docker-compose.yml文件不能放在egg项目文件夹下面,不然会部署失败。myeggdocker-compose.yml要处在同级目录下。这一章是通过docker-compose构建部署egg.js。现在docker-compose成功了。

deng_zhihao692817的专栏 887

Linux部署node.JSNginXegg、MongoDB和非js世界的后端服务之CentOS-腾讯云

Linux部署node.JSNginXegg、MongoDB和非js世界的后端服务之CentOS。MSWindows安装部署mongoDB;部署CentOS可视化界面GUI-之腾讯云服务器; centOS部署vscode;阿里云、百度云、华为云、京东云,因其内置的centos具体版本及其优化,会在很多细节上,各有差异

pulledup的博客 1735

docker 制作Eggjs项目镜像,以及上传到Dockerhub

Docker镜像的制作 1 修改package.json { "name": "name", "version": "1.0.0", "description": "描述", "private": tru...

ordinary_lc的博客 2189

踩坑:egg.jsNginx docker中提示 Session ID unknown

问题: 在本地启动egg.js,能正常连接到websocket,而放到docker中运行,则无法连接得上,提示Session ID unknown,http报400错误。 原因: 之所以在本地能成功连接,是因为本地启动方式为egg-bin dev,会针对本地开发做很多处理,而在docker中启动脚本是egg-scripts start,如果没有在sticky模式下运行,则会出现无法正常连接,同时报...

HelloBiu的博客 2991

ScanNetV2 数据集讲解和选择性下载

写在前面的话: 不可转载!!!!!!!!!!!! ScanNetV2一共1.2T,数据太大本文会简单讲解如何下载自己想要的文件,并附上修改后的下载程序 ScanNetV2:http://www.scan-net.org/ 简介 ScanNetV2的作者是斯坦福大学的博士,其团队通过收集RGB-D的视频序列,通过ipad应用加深传感器而收集的,然后视频会被上传到服务器,并被自动重建。然后,视频会被给到亚马逊 Mechanical Turk,将标注工作众包出去。ScanNetV2是RGB-D数据集,.

qq_35781447的博客 2万+

拼多多_Anti-Content加密_拼多多MCN_拼多多店群_拼多多订单采集_推广数据_

拼多多_Anti-Content加密_拼多多MCN_拼多多店群_拼多多订单采集_推广数据_财务流水_anti-content

consistentAlex
博客等级 码龄7年 1粉丝 · 1原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值