JAVA开发与运维(web生产环境部署)

这篇具有很好参考价值的文章主要介绍了JAVA开发与运维(web生产环境部署)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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生产环境部署)

 文章来源地址https://www.toymoban.com/news/detail-445225.html

到了这里,关于JAVA开发与运维(web生产环境部署)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DevOps理念:开发与运维的融合

    在现代软件开发领域,DevOps 不仅仅是一个流行的词汇,更是一种文化、一种哲学和一种方法论。 DevOps 的核心理念是通过开发和运维之间的紧密合作,实现快速交付、高质量和持续创新。 本文将深入探讨 DevOps 文化的重要性、原则以及如何在团队中实现开发与运维的融合。

    2024年02月10日
    浏览(43)
  • 容器与虚拟化技术在云计算环境中的集成与运维实践

    作者:禅与计算机程序设计艺术 云计算是一种新型的分布式系统的计算机资源,其中涉及到的硬件设备,网络组件,存储设备都由云服务商提供并按需动态分配给用户,用户只需要关注业务逻辑的开发,部署和运行。 由于云计算平台的高度动态性,容器技术和虚拟机技术可

    2024年02月08日
    浏览(38)
  • 云计算基础架构平台搭建,云计算平台开发与运维,搭建openstack平台

    一、创建虚拟机 先创建 两台 虚拟机 内存放大一些 ,实际用的内存不会那么高 1.controller节点硬件配置 镜像我这里使用1804的    (注意:要添加一个仅主机模式的网络适配器) 2.编辑compute硬件 添加硬盘 三次下一步默认设置到这里  (注意这里是两张网卡,一张NET,一张仅

    2024年02月05日
    浏览(40)
  • 生产环境部署与协同开发 Git

    目录 一、前言——Git概述 1.1 Git是什么  1.2 为什么要使用Git  什么是版本控制系统 1.3 Git和SVN对比 SVN集中式 Git分布式 1.4 Git工作流程  四个工作区域 工作流程  1.5 Git下载安装 1.6 环境配置  设置用户信息 查看配置信息 二、git基础 2.1 本地初始化仓库 ​编辑 2.2 文件的两种

    2024年02月06日
    浏览(37)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第六套区块链系统部署与运维

    第六套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 题意: P2P起始端口 30500 channel起始端口 20500 JSONRPC 8945 使用Docker配置 使用 build_chain.sh 文件 进行生成节点文件

    2024年02月05日
    浏览(32)
  • Java Docker 生产环境部署

    随着容器化技术的广泛应用,Docker成为了一种非常流行的容器化解决方案。Java作为一种跨平台的编程语言,在生产环境中也广泛使用。本文将介绍如何使用Docker来部署Java应用程序,并探讨一些最佳实践和注意事项。 Docker是一种轻量级的容器化解决方案,它能够将应用及其依

    2024年02月04日
    浏览(32)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第三套区块链系统部署与运维

    第三套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 根据题意: 3个独立组织以及6个节点,网络拓扑为星型网络,并且在联盟链中需实现2个数据隔离场景(group1、group2) 所以需要agencyA[两个节点,1,2群组],agencyB[两个节点,1群组],agencyC[两个节点,2群组] 1.使用给定工

    2024年02月05日
    浏览(38)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第五套区块链系统部署与运维

    第五套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 此题在官网有例子如图: 每个机构拥有两个节点,机构A属于中心,属于群组1,2,3, 机构B只属于群组1, 机构C 只属于群组3,机构D只属于群组2。 然后根据此图编写ipconf文件,使用文件形式搭建节点【题目没有指定

    2024年02月04日
    浏览(36)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第二套区块链系统部署与运维

    第二套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 docker: 20.10.21 webase-deploy : 1.5.5 mysql: 8.0.34 使用 build_chain.sh 脚本文件进行搭建区块链 ,要求: 四节点,默认配置,单机,docker

    2024年02月08日
    浏览(64)
  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第一套区块链系统部署与运维

    第一套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 题意: 要求搭建一条四节点的区块链系统,我们选择使用fisco作为此次测试的链子 我们使用build_chain.sh进行构建单机四节点,并且使用官方的默认端口【正式比赛大概率不会用默认端口,会有详细的说明使用什么端

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包