web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同。

一、部署内容

1、后端服务

2、后台管理系统vue

3、小程序

二、所需要服务器

5台前端服务器

8台后端服务

三、所需要的第三方组件

redis
mysql
clb
OSS
CDN
WAF
RocketMQ

redis用来缓存应用的数据

mysql用来存储配置中心apollo的配置数据

clb用来做负载均衡

OSS用来存储应用的图片

CDN用来加速应用的访问速度

WAF用来保障应用的安全

RocketMQ用来做后台收集用户数据时的异步处理,提高系统接口性能

postgresql 用来存在应用的基础数据

四、需要安装的服务

1、apollo配置中心

2、Eureka服务注册发现中心

3、应用服务

五、安装安排

5台前端服务器上安装 nginx ,apollo 、Eureka  其中这三个组件都使用docker来安装。

8台后端服务器用来安装应用的服务,包括网关,公共服务,业务服务。

六.安装方法

1、基础软件安装

1. 基础服务

1.1服务器资源

操作系统版本:Linux CentOS 7.6

JAVA环境:openjdk version "1.8.0_312"

数据库:MYSQL8.0 或PostgreSQL 12.8

1.2 yum准备

1.2.1 更新yum

yum update yum

1.2.2 安装yum工具

yum -y install yum-utils

1.2.3查看yum版本 

yum –version

版本为3.4.3或之后的最新版本即可

1.3 JAVA部署

JAVA安装命令:

yum install java-1.8.0-openjdk.x86_64

查看JAVA版本: java -version

1.4 docker环境及部署

1.4.1版本

Client: Docker Engine – Community version: 20.10.12

Server: Docker Engine – Community version: 20.10.12

1.4.2 部署

1.用yum拉取阿里云镜像:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. yum安装:

yum install docker-ce

3.查看docker版本:

docker version

4.启动docker:

systemctl start docker

5.设置docker开机自启

systemctl enable docker

1.4.3 文件夹

1.在系统的/home路径下创建一个命名为“docker”的文件夹,用于存放docker相关文件。

2.在/home/docker路径下创建两个文件夹“script”和“apps”,用于存放脚本文件与镜像文件。

1.4.4 docker常用命令

1.查看docker镜像: docker images

2.查看docker正在运行容器: docker ps

3.查看docker里的容器: docker ps -a

1.5 nginx部署

端口需要:80

1.5.1 docker部署nginx

docker pull nginx:latest

1.5.2 脚本文件

在/home/docker/script路径下创建一个脚本文件“nginx.sh”,内容为:

docker run -d \

--name nginx \

--net=host \

-v /home/docker/apps/nginx/www:/usr/share/nginx/html \

-v /home/docker/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \

-v /home/docker/apps/nginx/logs:/var/log/nginx \

-v /home/docker/apps/nginx/conf.d:/etc/nginx/conf.d \

-v /home/docker/apps/nginx/cert:/etc/nginx/cert \

nginx

(注意:以上内容需注意linux中的特殊字符,可用vim编辑文件,去掉特殊字符,否则运行脚本文件时会报错;cert为安全证书相关,不需要时可以去掉)

1.5.3 nginx文件

1.在/home/docker/apps路径下创建“nginx”文件夹

2.在/home/docker/apps/nginx路径下分别创建“www”、 “logs”、 “conf”、 “conf.d”四个文件夹;”www”文件夹用于存放前端代码,“logs”文件夹用于存放日志,“conf”文件夹用于存放nginx总配置文件,“conf.d”用于存放项目配置文件;如需安全证书相关,还要创建“cert”文件夹。

3.nginx总配置文件:

在/home/docker/apps/nginx/conf路径下创建“nginx.conf”文件,作为nginx的总配置文件,内容为:

user  nginx;

worker_processes  auto;

error_log  /var/log/nginx/error.log notice;

pid /var/run/nginx.pid;

events {

worker_connections  1024;

}

http {

include       /etc/nginx/mime.types;

default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;

#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

client_max_body_size 1024m;

include /etc/nginx/conf.d/*.conf;

}

4.项目配置分文件

在/home/dokcer/apps/nginx/conf.d路径下创建“xxx.conf”文件,“xxx”为项目名,内容为:

#server

#{

## 80端口是http正常访问的接口

#listen 80;

#server_name XXX.com;

## 在这里,我做了https全加密处理,在访问http的时候自动跳转到https

#rewrite ^(.*) https://${server_name}$1 permanent;

#}

server {

# listen 自定义监听端口

listen       80;

#定义使用 访问域名

server_name  localhost;

# 如需域名则配置如下

# 侦听443端口,这个是ssl访问端口

# listen 443 ssl;

# ssl_certificate /etc/nginx/cert/xxx.crt;

# ssl_certificate_key /etc/nginx/cert/安全私钥文件名;

location / {

root   /var/nginx/html/xxx;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /404.html {

root  error;

}

}

1.5.4 运行nginx

1.通过脚本文件nginx.sh运行,脚本文件的运行需授予权限,在文件目录下命令:

chmod 755 nginx.sh

2.运行脚本命令:./nginx.sh

1.5.4 nginx常用命令

1.启动: docker start nginx

2.重启: docker restart nginx

3.停止: docker stop nginx

1.6 注册中心eureka部署

端口需要:8761

1.6.1 准备

部署注册中心eureka,使用docker部署。在/home/docker/apps路径下创建“eureka”文件夹,并存放一个eureka.jar的镜像文件和构建镜像的Dockerfile文本文件。eureka.jar文件可使用别的服务器同目录下的eureka.jar文件。

Dockerfile文件的内容:

FROM java:8

VOLUME /tmp

ADD eureka.jar eureka.jar

EXPOSE 8761

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/ctg-eureka.jar"]

1.6.2 脚本文件

在/home/docker/script路径下创建一个脚本文件“eureka.sh”,内容为:

docker run --name eureka -d -p 8761:8761 ctg-eureka

1.6.3 运行eureka

1.通过脚本文件eureka.sh运行,脚本文件的运行需授予权限,在文件目录下命令:

chmod 755 eureka.sh

2.运行脚本命令:./ eureka.sh

1.6.4 eureka常用命令

1.启动: docker start eureka

2.重启: docker restart eureka

3.停止: docker stop eureka

1.7 配置中心Apollo部署

端口需要: 8070,8080,8090

1.7.1 准备工作

Apllo的部署需要Mysql数据库,需要5.6.5以上版本。

1.7.2 创建数据库

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

执行两个sql文件

sql/apolloportaldb.sql

sql/apolloconfigdb.sql

会创建两个数据库

sql文件可在官网:Quick Start · apolloconfig/apollo Wiki · GitHub 下载

1.7.3 脚本文件

1.在/home/docker/script路径下创建“apollo”文件夹

2.在/home/docker/script/apollo路径下创建“apollo-portal.sh”脚本文件,内容为:

docker run -d \

--name apollo-portal \

--net=host \

-v /tmp/logs:/opt/logs \

-e SPRING_DATASOURCE_URL=

"jdbc:mysql://数据库地址/ctg_apollo_portal_test?characterEncoding=utf8" \

-e SPRING_DATASOURCE_USERNAME=数据库账号\

-e SPRING_DATASOURCE_PASSWORD=数据库密码\

-e APOLLO_PORTAL_ENVS=test \

-e TEST_META=http://服务器ip地址:8080 \

apolloconfig/apollo-portal:1.9.1

3.在/home/docker/script/apollo路径下创建“apollo-config.sh”脚本文件,内容为:

docker run -d \

--name apollo-configservice \

--net=host \

-v /tmp/logs:/opt/logs \

-e SPRING_DATASOURCE_URL=

"jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncoding=utf8" \

-e SPRING_DATASOURCE_USERNAME=数据库账号\

-e SPRING_DATASOURCE_PASSWORD=数据库密码\

apolloconfig/apollo-configservice:1.9.1

4. 在/home/docker/script/apollo路径下创建“apollo-admin.sh”脚本文件,内容为:

docker run -d \

--name apollo-adminservice \

--net=host \

-v /tmp/logs:/opt/logs \

-e SPRING_DATASOURCE_URL=

"jdbc:mysql://数据库地址/ctg_apollo_config_test?characterEncoding=utf8" \

-e SPRING_DATASOURCE_USERNAME=数据库账号\

-e SPRING_DATASOURCE_PASSWORD=数据库密码\

apolloconfig/apollo-adminservice:1.9.1

1.7.4 docker拉取apollo

命令:

  1. docker pull apolloconfig/apollo-configservice:1.9.1
  2. docker pull apolloconfig/apollo-adminservice:1.9.1
  3. docker pull apolloconfig/apollo-portal:1.9.1

1.7.5 运行apollo

在/home/docker/script/apollo路径下运行指令

1. chmod 755 apollo-portal.sh

2. chmod 755 apollo-config.sh

3. chmod 755 apollo-admin.sh

执行运行命令

1. ./ apollo-portal.sh

2. ./ apollo-config.sh

3. ./ apollo-admin.sh

1.7.6 使用Apollo配置中心

访问服务器IP:8070可以进行访问,默认的用户名是apollo,密码是admin。

应用的部署。。。。

其中我们可以分别在一台前端服务器,一台后端服务器部署完了,再复制到其他服务器,做横向扩展即可。

JAVA开发与运维(web生产环境部署)相关推荐

  1. JAVA开发与运维(云安全产品)

    在现在的开发和运维中,云生态组件的使用率非常高,很少公司自己维护自己的物理机,网络流量 ,监控,第三方中间件,除了少数涉密程度高的部分和公司外,大多数的企业都在使用云生态.比如我们正在开发的系统,服务 ...

  2. JAVA开发与运维(配置中心Apollo的使用)

    在微服务构建的分布式系统,有一个组件很重要,就是配置中心.配置中心集中管理所有微服务的配置信息,这样做既规范了开发配置规范,也方便于后期的运维管理.这一篇我们讲一下携程的开源配置中心Apollo的使用 ...

  3. JAVA开发与运维(Nginx配置详解)

    对于Nginx的使用,最重要的是理解每个配置项的作用.所以一份详细的Nginx的配置对于JAVA开发和运维尤为重要.我们一般使用两个Nginx配置文件对Nginx进行配置,一个是公共文件nginx.c ...

  4. JAVA开发与运维(JavaWeb测试环境搭建)

    本例子测试环境搭建在腾讯云平台之上. 系统架构: 微服务+Eureka+Apollo+gateWay+redis+rocketMq+OSS+spark+ETL+mysql+pgsql+clickHou ...

  5. JAVA开发与运维(docker运维常规操作)

    使用docker来安装软件步骤. 1.先装好docker环境. 1.4 docker环境及部署 1.4.1 版本 Client: Docker Engine – Community version: ...

  6. 写给java开发的运维笔记

    转载至:https://github.com/biezhi/java-bible/tree/master/learn_server 转载于:https://www.cnblogs.com/zhuawa ...

  7. django生产环境部署

    最近尝试进行一些python web生产环境部署的任务.主要是使用django框架进行web开发.本地使用windows + python3.7可是上到服务器之后是ubuntu系统.ubuntu默认是 ...

  8. python bottle框架 运维_python bottle框架(WEB开发、运维开发)教程 | linux系统运维...

    教程目录 一:python基础 二:bottle基础 python bottle 框架基础教程:环境部署 三:WEB开发教程 四:运维开发教程 运维开发(1.1):框架.结构介绍 运维开发(1.2): ...

  9. python bottle部署g_python bottle框架(WEB开发、运维开发)教程 | linux系统运维

    教程目录 一:python基础 二:bottle基础 python bottle 框架基础教程:环境部署 三:WEB开发教程 四:运维开发教程 运维开发(1.1):框架.结构介绍 运维开发(1.2): ...

最新文章

  1. 使用NetworkX绘制深度神经网络结构图(Python)
  2. 黑盒测试方法之因果图法
  3. 2020年人工智能领域的最大创新
  4. hdu 4679 树状dp
  5. 定义快捷代码_Qt Creator快捷键
  6. SQL基础操作_6_处理数字
  7. C# System.Windows.Forms.NumericUpDown 控件全选其中文字
  8. python二维码生成器制作中报错为oserror_Python生成:OSError:[WinError 193]%1不是有效的Win32应用程序...
  9. C# 调用其他的动态库开发应注意的问题
  10. PCL之计算点云质心---pcl::compute3DCentroid()
  11. ESXI NUMA node 1 has no memory..
  12. Excel VBA视频教程20集+PPT课件 完整版
  13. 工业上服务器无线投屏到电视,台式电脑支持无线投屏吗 如何投屏到电视上
  14. 【Java 判断素数的几个方法】简单理解
  15. 数据结构:堆栈的区别
  16. 【腾讯TMQ】众测白皮书
  17. 仿“当当网”首页-Flash图片轮换
  18. android 8.1 wifi感叹号,Android 网络图标上的感叹号(更新Android 7.1.1/Android 8)
  19. cpu之ALUSrc_Reg1
  20. 《posix多线程编程》笔记(四)

热门文章

  1. 渝粤题库 陕西师范大学 《中国法制史》作业
  2. 简单好用的音频转换器分享
  3. matlab 色温图,技术:图文教你了解色温及如何选择色温
  4. jacobWord案例
  5. chrome manifest v3 api大全(持续更新中)
  6. 开发一款好玩的地图app
  7. python 制作自己的新闻_【一点资讯】使用 Python 制作属于自己的 PDF 电子书 www.yidianzixun.com...
  8. 自己动手做聊天机器人 一-涉及知识
  9. MATLAB中向量场的可视化
  10. 输入圆形半径,求圆形的周长和圆形的面积,并将结果输出