spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六)

  • 公众号
  • 基于docker的后端的部署
    • 安装mysql数据库
      • 创建数据库
    • 安装redis
    • 安装docker
    • 创建基础镜像
    • 编写后台管理系统的DockerFile文件
    • pom.xml的配置
    • 新增application-prod.yml的配置
    • 部署程序
      • 开放端口
      • docker端口映射到主机无法访问
    • 运行前端验证效果

公众号

在这里插入图片描述
大家可以直接微信扫描上面的二维码关注我的公众号,然后回复【bg36】 里面就会给到源代码的下载地址同时会附上相应的视频教程,并定期在我的公众号上给大家推送相应的技术文章,欢迎大家关注我的公众号。

基于docker的后端的部署

现在慢慢的都从传统的部署方式,迁移到了基于docker的容器的部署,如果没有工具进行部署docker,那么我们需要自己打包jar包,上传到服务器,停止启动的容器,删除旧的镜像,创建新的镜像,启动新的容器,如果是对着一个过程不熟悉的人,这可能会花去大家大半个小时的时间,这时候我们则需要一些自动化的部署工具,比如一键帮助我们快速部署,这里为大家编写了一个基于docker的自动化部署工具,具体的部署步骤大家可以直接移到以下的博客地址,本章直接就拿来使用了:https://blog.csdn.net/linzhefeng89/article/details/90632897

安装mysql数据库

mysql的安装大家可以直接看我的这篇博客,在此处就不再累述了:
https://blog.csdn.net/linzhefeng89/article/details/95256244

创建数据库

使用navicate工具创建一个vcm数据库:
在这里插入图片描述
接着执行bg-admin-doc底下的vcm.sql的脚本文件,执行完成以后效果如下:
在这里插入图片描述

安装redis

redis的安装大家可以直接看我的这篇博客,在此处就不再累述了:https://blog.csdn.net/linzhefeng89/article/details/95256186

安装docker

docker的安装大家可以直接看我的这篇博客,在此处就不再累述了:https://blog.csdn.net/linzhefeng89/article/details/78411199

创建基础镜像

我们在部署我们的后端工程的时候,我们首先要编写我们的基础镜像包,我们的基础镜像是依赖于centos的,因此我们需要先下载基础镜像包,在安装好了docker的环境中执行以下命令:

docker pull centos

大家会看到如下的下载镜像的界面:
在这里插入图片描述
接着我们执行以下命令我们会看到我们已经将centos的镜像下载完成了:

docker images

执行完成以后会看到我们已经正常下载好我们的镜像了。
在这里插入图片描述
接着编写我们的DockerFile文件,编写完成以后的代码如下:

FROM docker.io/centosMAINTAINER linzf <282245889@qq.com>ENV LANG en_US.UTF-8  ENV LANGUAGE en_US:en  ENV LC_ALL en_US.UTF-8 ENV TZ=Asia/ShanghaiRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezoneRUN mkdir -p /usr/java/jdk1.8ADD jdk1.8.0_191 /usr/java/jdk1.8ENV JAVA_HOME /usr/java/jdk1.8ENV PATH $PATH:$JAVA_HOME/bin

接着我们在我们的服务器上创建/home/docker/base这个路径,将我们的DockerFile文件和我们的jdk的包上传到服务器的/home/docker/base这个路径底下,大家可以直接访问以下的百度网盘的地址直接下载:[https://pan.baidu.com/s/1MB9peTmmb5iBLIix343TxA 提取码: njtp (https://pan.baidu.com/s/1MB9peTmmb5iBLIix343TxA)
接着我们使用SSH登录我们的系统,然后进入到我们的/home/docker/base这个路径,然后执行以下命令解压我们的jdk的包。

tar -xvf jdk.tar 

最后我们执行我们的镜像打包文件,创建我们的基础依赖镜像base-jdk8,打包的命令如下:

 docker build -f "/home/docker/base/DockerfileJdk" -t "base-jdk8" . 

最后我们执行查看镜像的命令,我们会看到如下的镜像,则说明我们的镜像已经打包成功了。
在这里插入图片描述

编写后台管理系统的DockerFile文件

首先在我们的bg-admin-web-core工程的src目录的同级目录底下创建一个dockerFile文件夹,接着在该文件夹底下创建一个Dockerfile文件,Dockerfile文件的内容如下:

FROM base-jdk8MAINTAINER linzf <282245889@qq.com>RUN mkdir -p /app/www/logs/bg-admin-web-core/log/RUN mkdir -p /home/app/ADD bg-admin-web-core.jar /home/app/app.jarCMD java -jar -Xms128m -Xmx1536m /home/app/app.jar

pom.xml的配置

最后我们修改我们的pom.xml,修改完成以后的信息如下,在此处我们没有进行打包部署的时候我们整个系统都是正常运行的,若没有替换以下的代码,当我们进行打包部署的时候就会出现问题,我们打包出来的文件是没办法运行的,因为我们之前是用maven-compiler-plugin进行打包的,这样打出来的包是无法运行spring boot的程序的,因此我们需要替换为spring-boot-maven-plugin方式进行打包:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.github.bg.admin</groupId><artifactId>bg-admin-web-core</artifactId><version>0.0.1-SNAPSHOT</version><name>bg-admin-web-core</name><description>这是一个后端的springboot权限架构工程</description><properties><java.version>1.8</java.version><org.mapstruct.version>1.1.0.Final</org.mapstruct.version></properties><dependencies><dependency><groupId>com.corundumstudio.socketio</groupId><artifactId>netty-socketio</artifactId><version>1.7.7</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 引入redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--通用 Mapper--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.4</version></dependency><!--连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.4</version></dependency><!-- swagger插件 --><dependency><groupId>com.didispace</groupId><artifactId>spring-boot-starter-swagger</artifactId><version>1.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--mapStruct依赖--><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-jdk8</artifactId><version>${org.mapstruct.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version><scope>provided</scope></dependency></dependencies><build><finalName>bg-admin-web-core</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.27</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.0.0</version></dependency></dependencies></plugin><plugin><groupId>com.github.lazyBoyl</groupId><artifactId>docker-maven-plugin</artifactId><version>1.1-release</version><configuration><!-- 本地package以后生成的jar包的完整路径 --><jarTargetPath>${basedir}/target/bg-admin-web-core.jar</jarTargetPath><!-- centos服务器存放我们的dockerFile文件和相应的jar包的文件夹的路径 --><dockerImagesPath>/home/app/docker/bg-admin-web-core/</dockerImagesPath><!-- 创建镜像的dockerFile的文件的路径 --><dockerFilePath>${basedir}/dockerFile/Dockerfile</dockerFilePath><!-- 该工程启动的时候的文件挂载 --><containerRunShare>/app/www/logs/bg-admin-web-core/log/:/app/www/logs/bg-admin-web-core/log/</containerRunShare><!-- 该工程启动的时候的端口映射,多个端口那就对应着启动多少个容器 --><containerRunPorts><containerRunPort>8288:8288,9099:9099</containerRunPort></containerRunPorts><!-- 采用与宿主机一样的IP的形式 --><netType>host</netType><options><!-- 服务器的ip,账号,密码 --><option>10.10.10.113:22,root,123456</option></options></configuration><executions><execution><!-- 设置该插件的执行的生命周期为package完成以后执行,若不想绑定就将executions这块的代码注释了,后面就不会在打包好以后再去执行docker插件的操作 --><phase>package</phase><goals><!--phase与goal是绑定的关系,当g到达了phase阶段的时候就会去执行goal,此处的值固定为dockerMavenPlugin,因为插件给予他的名字就是dockerMavenPlugin --><goal>dockerMavenPlugin</goal></goals></execution></executions></plugin></plugins></build></project>

新增application-prod.yml的配置

配置生产环境的配置信息,最后要记得修改application.yml中的访问为prod

server:port: 8288# 配置日志信息
logging:level:root: INFOcom.github.bg.admin.core: DEBUGspring:redis:host: 10.10.10.113password: 123456port: 6379database: 0jedis:pool:max-active: 8max-idle: 20min-idle: 0timeout: 2000datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://10.10.10.113:3306/vcm?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456type: com.alibaba.druid.pool.DruidDataSourcedruid:filters: statmaxActive: 20initialSize: 1maxWait: 60000minIdle: 1timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: select 'x'testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxOpenPreparedStatements: 20swagger:title: 用户权限架构的接口测试中心description: 用户权限架构的接口测试专用API文档base-package: com.github.bg.admin.core.controllercontact:name: 林泽锋email: 282245889@qq.comauth:# authToken的过期时间authTokenExpire: 3600# refreshToken过期时间refreshTokenExpire: 7200# 放行的权限列表,采用小写的冒号分隔releaseUrl: /user/refreshToken# false表示用户单点登陆,true表示用户多点登录singleLanding: false# 私钥的keyprivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAPIqZ8mGAAcQrRijqo60UHyxJ9ghkElTLJeLVfsSCRmjeSYw67r+5PtLAL0SepuIzJIl8CW8HbTRkwiTp7U1Cs8tmlzlVK7NJDc2p1c51s2eFcBR4wTwhyxuxwr1c/wHGV0yFSEgr7fOi8jVUJjaQs7pMzARW9N0f4XWNb9YWSmXAgMBAAECgYB3ZlMf+LLgyOcfw+qfS+Z3ZH2pwfq7PIg6/BdboGveOUzNeMdxvqW2BSgLESZks5Fx6cS7RkI7Wi2tx+ejn9CAmnqwu+cpPzxpcWQ6524XX1chKs0fOuSnD6UDeIYdnkw1iV85uiit59TfQCUTHaOtwWJiSbe9o/Y4Zzz3Im7KaQJBAP64qBRHm43px36qj4C+P1qZIDLvR2HGGpD3KIfx+0gvQ9pz2V/kYQWFgHnr+4ao31tZOO75kUd7GdsTO3raLQUCQQDzYZ0Pavq/WIlbhLxpkd/o2W8ChBSUDiXymaFXEQ76rudAaThHA6LGHmXqbmupoioDiABvPWZwhKULDl+Fgl7rAkAoop61tYK8Tfo0W9NOz4rd0iXP2lpB38+nJrbBkTnsFxY1CFw6Lv3HWrfXO21B2zjeosoxXYDurVW/nD7V525dAkEAyPqXv06hZ/eN3iRbjnYmx9seH57Ae46/aXnSUNrGWt6qGneJQKNQ/HfHw3KRt5AxT580dKfoewweWmXxHYgOJwJAUQkBcwN/XxUv2bENOuKso9M66OYvipX8E14hAbXfmKxTPw3qDNegtjuepTIuCaU8jeVjGXFythq+YHAUIKGSDw==# 文件上传的地址
file:upload:path: D:/static/merJoinResource/#============================================================================
# netty socket io setting
#============================================================================
# host在本地测试可以设置为localhost或者本机IP,在Linux服务器跑可换成服务器IP
socketio:host: localhostport: 9099# 设置最大每帧处理数据的长度,防止他人利用大数据来攻击服务器maxFramePayloadLength: 1048576# 设置http交互最大内容长度maxHttpContentLength: 1048576# socket连接数大小(如只监听一个端口boss线程组为1即可)bossCount: 1workCount: 100allowCustomRequests: true# 协议升级超时时间(毫秒),默认10秒。HTTP握手升级为ws协议超时时间upgradeTimeout: 1000000# Ping消息超时时间(毫秒),默认60秒,这个时间间隔内没有接收到心跳消息就会发送超时事件pingTimeout: 6000000# Ping消息间隔(毫秒),默认25秒。客户端向服务器发送一条心跳消息间隔pingInterval: 25000

部署程序

接着我们在IDEA中更新我们的maven依赖,然后我们直接运行我们的package,直接自动帮助我们部署到我们的测试环境,这时候我们执行以下代码我们会看到我们的程序已经在上面正常运行了。

docker ps

在这里插入图片描述
但是我们这时候在我们的本机上访问我们工程的任意一个方法我们会发现无法访问,这是因为我们还缺少以下的两步。

开放端口

1、防火墙永久放开某一个端口
firewall-cmd --zone=public --add-port=8288/tcp --permanent
2、重新加载生效该端口
firewall-cmd --reload
3、验证该端口是否开放成功【yes:端口已开放;no:端口未开放】
firewall-cmd --zone=public --query-port=8288/tcp

docker端口映射到主机无法访问

解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network查看是否修改成功
# sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了

最后我们访问以下的地址:http://10.10.10.113:8288/,我们会看到我们已经可以正常访问了,因为我们是使用浏览器直接访问,没有携带token因此是会被权限拦截的。
在这里插入图片描述

运行前端验证效果

那么我们这时候可以改造下我们前端的工程,让前端工程的访问指向我们的测试环境,那么我们修改我们的src/config目录底下的prod.js,修改以后代码如下:

export const runProdConfig = {baseUrl: 'http://10.10.10.113:8288',imgUrl: 'http://127.0.0.1:80/merJoinResource',refreshTokenUrl: 'http://10.10.10.113:8288/user/refreshToken',socketUrl: 'http://10.10.10.113:9099'
};

接着修改env.js代码如下:

export default "prod";

最后我们运行我们前端工程我们会看到我们已经可以正常访问我们的项目了。
在这里插入图片描述
那么到此为止我们就完成了我们本章的基于docker的部署
上一篇文章地址:spring boot+iview 前后端分离架构之权限注解的实现(三十五)
下一篇文章地址:spring boot 与 iview 前后端分离架构之前后端代码自动生成(番外篇)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353147.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

回归模型评价指标R2_score

搞清楚R2_score计算之前&#xff0c;我们还需要了解几个统计学概念。 若用 y i y_i yi​表示真实的观测值&#xff0c;用 y ˉ \bar{y} yˉ​表示真实观测值的平均值&#xff0c;用 y i ^ \hat{y_i} yi​^​表示预测值,则&#xff1a; 回归平方和&#xff1a;SSR 即估计值与…

Python网络编程

查看Python中支持的编码方式&#xff1a;https://docs.python.org/3/library/codecs.html?highlightutf IP地址工具&#xff1a;http://ipblock.chacuo.net/ 查看应用程序进程PID&#xff1a; 1.启动任务管理器&#xff0c;点击进程&#xff1a;默认是这样的&#xff1a; 2…

Redis的安装等相关问题

1.1 下载 从官网下载&#xff0c;Redis官网点击下载 或者直接下载整合下好的&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Vj9jNq2mh5lZLVFSVo5cFw&shflsharepset 提取码&#xff1a;m599 通过SecureCRT将下载的文件上传到/opt/work目录 如果上传rz不能使用…

路由器 ------ 动态路由 (1) ---- RIP

RIP &#xff1a; 根据Bellman-Ford算法计算路由 距离矢量型协议&#xff08;DV&#xff09;---- 路由器之间传递路由条目 &#xff1b;距离就是开销值&#xff0c;矢量就是下一跳 邻居关系 ---- 相邻的两个路由器&#xff0c;链接在共同的广播域内&#xff0c;通过广播的形…

华为云HCS解决方案笔记HUAWEI CLOUD Stack【面试篇】

目录 HCS方案 一、定义 1、特点 2、优点 二、云服务 1、云管理 2、存储服务 3、网络服务 4、计算服务 5、安全服务 6、灾备服务 7、容器服务 三、应用场景 四、HCS功能层 五、OpenStack网络平面规划 六、ManageOne运维面 1、首页 2、集中监控 3、资源拓扑 …

关于Arthas如何远程监视Java程序

在使用 Arthas 之前&#xff0c;当遇到 Java 线上问题时&#xff0c;如 CPU 飙升、负载突高、内存溢出等问题&#xff0c;你需要查命令&#xff0c;查网络&#xff0c;然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额&#xff0c;还不一定能查出问题所在…

NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing...

~~因为不太会使用opencv、matlab工具&#xff0c;所以在找一些比较简单的工具。 . 一、NLP标注工具 来源&#xff1a;《构想&#xff1a;中文文本标注工具&#xff08;附开源文本标注工具列表&#xff09;》 Chinese-Annotator 来源&#xff1a;https://github.com/crownpku/…

kube-proxy源码阅读(iptables实现)

Reference 文章目录 1 入口2 ProxyServer创建及调用3 ProxyServer 核心调用流程3.1 func (o *Options) Run() err3.2 func (o *Options) runLoop() error3.3 func (s *ProxyServer) Run() error3.4 func (proxier *Proxier) SyncLoop() 4 资源事件处理流程4.1 Service事件4.2 …

windows_删除多余网络适配器(删除/卸载多余网卡)/删除TAP虚拟网卡NIC

文章目录 Device Manager检查所有NIC状态利用资源监视器查看网卡情况接入不同网络对于计算机网络环境造成不同的影响接入传统的wifi接入手机热点的wifi Device Manager 删除指定的Network adapter(网卡又称为网络适配器)完成之后你可能需要重启才可以上网 检查所有NIC状态 包…

值得一阅的Kali系统的使用小技巧

目录 写在最前1.软件安装软件源关于AMD显卡驱动浏览器中文输入法下载工具代理软件QQSteam 2.使用优化ssh服务开启Grub修改Zsh和PowerShell命令标头修改VSCode内置终端字体间距过大问题 Aria2配置文件 写在最前 不定期更新 1.软件安装 软件源 推荐使用中科大源&#xff0c;官…

基于geoserver开发地图发布服务

写在前面&#xff1a;我在github上创建了对应的项目&#xff0c;可点此跳转&#xff0c;本文的所有源码均可在项目里找到&#xff0c;欢迎大家访问交流 一、开发背景 在gis领域&#xff0c;geoserver是后端地图发布的开源项目。目前我们在启动服务后&#xff0c;可通过自带的…

CIPSTAT

AT_TCPIP_CmdFunc_CIPSTART //start up tcpip connection 1&#xff09;if (gCipBearer ! BEARER_WIFI) 承载是GPRS(1)还是WIFI&#xff08;2&#xff09;&#xff0c;若非WIFI&#xff0c;获取SimStatus 2)if ((!cipMux_multiIp && (CIP_INITIALg_uCipContexts.nBeare…

Cloud Computing:云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系

Cloud Computing&#xff1a;云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系 目录 云计算的简介、必要性以及安全上云与企业数字化转型(从陈坤/辛芷蕾主演电视剧《输赢》看云计算的未来)的关系 从陈坤/辛芷蕾主演电…

relation-graph关系图谱组件2.0版本遇到的问题

前提&#xff1a;之前已经写过一篇1.1版本的问题&#xff0c;这里就不过多讲了&#xff08;如果想要解决火狐低版本兼容&#xff0c;看那个就行&#xff09; 这次主要讲的是和1.X版本的区别和一些其它问题 区别 参数名不同&#xff1a;以前的links>lines (虽然现在links也…

高压放大器在微流控技术的应用研究

随着微流控技术的不断发展&#xff0c;其在生物医学、环境监测、化学分析等领域中的应用越来越广泛&#xff0c;也对相关器件的性能提出了更高的要求。其中&#xff0c;高压放大器作为一种电子元器件&#xff0c;在微流控技术中具有重要的作用。下面安泰电子将从高压放大器在微…

仙境传说RO:添加商店物品教程

仙境传说RO&#xff1a;添加商店物品教程 我是艾西&#xff0c;今天跟大家分享下仙境传说RO游戏中我们自己怎么创建商店卖东西装备等&#xff0c;首先看看下图以及自己创建商店时需要在文档里创建的脚本格式 //*------------------shop普通商店------------------ //带坐标的…

Java养成类小游戏

此周是做项目 做一个java的养成类的小游戏 我是用控制台写的小游戏 建了很多的UI地图&#xff0c;部分代码&#xff0c; 然后让我们来看实现的样子&#xff1a; 好啦&#xff0c;部分内容就到这啦 早点洗洗睡叭&#xff01;

Java游戏合集

游戏1&#xff1a;猜数字小游戏&#xff1a; import java.util.Scanner; class GuessNumber{public static void main(String args[]){int number (int)(Math.random()*100)1;System.out.println("请输入一个数据&#xff08;1-100&#xff09;用于猜数字。");whil…

JAVA学习之路-简单的城堡游戏(一)

简单的文字城堡游戏&#xff08;一&#xff09; 最近在学习后台的一些功能&#xff0c;发现自己的基础不是很牢固&#xff0c;所以想写点小程序&#xff0c;巩固一下以前学的知识&#xff0c;融合一下。 之前在慕课上学的课程中就有一个这样的小程序&#xff0c;写一个简单的…

Nginx的优化,安全与防盗链

目录 一、Nginx的页面优化 1&#xff09;Nginx的网页压缩 2&#xff09;配置Nginx的图片缓存 3&#xff09;Nginx的连接超时设置 4&#xff09;Nginx的并发设置 查看cpu的核心数&#xff0c;根据核心数来设置工作进程数 修改工作进程核心数 &#xff1a; 测试结果&…