云服务器Linux环境部署mall电商项目完整实践教程

云服务器Linux环境部署mall电商项目完整实践教程

    • 引言
    • JDK8 安装
    • Docker 环境安装
    • MySQL安装
      • rpm 包安装 Mysql5.7
    • Redis 安装
    • RabbitMQ 安装
    • ElasticSearch 与 Kibana 安装
    • MongoDB安装
    • Nacos 安装
    • 安装 `Nginx` 服务
    • 部署后端`SpringCloud`微服务jar包
    • 站点效果
    • 结语
        • 阿里云服务器推荐

引言

在笔者之前的文章微服务版mall电商项目本地开发环境启动前后端服务详细指导教程中笔者详细介绍了如何在开发者的本地环境把开源mall-swarm电商项目跑起来。但是最终我们的项目都是要部署到云服务器上去成为一个用户可访问的站点才有价值,包括后面的支付环节都是需要我们部署到云服务上才能申请到支付宝支付和微信支付的商户号才能打通的。

笔者在尝试将mall电商项目部署到个人的腾讯云和阿里云服务上时踩了不少坑,这篇文章相信可以帮助大家在部署微服务项目的时候少踩很多坑。由于部署mall-swarm微服务项目需要安装不少中间件以及不少于3个微服务,因此一台1核2G的云服务器根本跑不起来,因此需要不少于2台云服务器,至少有一台2核4G配置的云服务器,当然如果能租一台2核8G的云服务器一台也够了。

本文6800余字,大约需要花费您15分钟时间才能阅读完,所以建议先收藏,等晚上下了班时间充足了再进行精读,阅读完必定让您收获成为一名具备独立承接项目所必可少运维技能!

JDK8 安装

Linux 系统环境下安装JDK8非常简单,为了节约文章篇幅,笔者给大家找了一篇写得非常具有实操性且图文并茂的文章给大家参考实践。Linux环境安装JDK8

Docker 环境安装

因为我们在云服务器Linux环境下部署mall-swarm微服务项目时大部分中间件服务都是基于docker安装的,所以需要在自己的云服器上先安装docker环境。
1)安装yum-utils

yum install -y yum-utils device-mapper-persistent-data lvm2

2)为yum源添加docker仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3)安装docker

yum install docker-ce

4)启动docker

systemctl start docker

MySQL安装

数据库建议不使用docker安装,原因有以下两点:

数据安全问题:不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。为了避免数据丢失,用户可以使用数据卷挂载来存储数据。但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证。如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对物理机硬件损伤也比较大。

性能问题:大家都知道,MySQL 属于关系型数据库,对IO要求较高。当一台物理机跑多个时,IO就会累加,导致IO瓶颈,大大降低 MySQL 的读写性能。

rpm 包安装 Mysql5.7

笔者之前在自己的腾讯云服务器上使用rpm包安装过mysql服务,并写了一篇文章记录自己当时安装过程踩过的坑,大家可以参考这篇文章在自己的云服务器上安装mysql5.7

Linux系统云服务器上安装Mysql5.7数据库,解决不能远程访问的bug

1)安装完成之后使用MySQL命令打开客户端:

mysql -uroot -proot --default-character-set=utf8

2)创建mall数据库及mallSwarm用户:

-- 创建mall数据库
create database mall character set utf8;
-- 创建mallSwarm用户和登录密码
create user mallSwarmidentified by 'mallPassword12345'with max_connections_per_hour 500 max_updates_per_hour 100 max_user_connections 500 max_queries_per_hour 200;
-- 授权mallSwarm用户操作mall数据库的权限
GRANT CREATE,DROP,ALTER,INSERT,UPDATE,SELECT,DELETE on mall.* to 'mallSwarm'@'%' with grant OPTION;
FLUSH PRIVILEGES;

3)在sql编辑器窗口中执行项目中document/sql/mall.sql中的全部sql脚本。

Redis 安装

# 拉取redis镜像
docker pull redis:latest
# 运行redis
docker run -it --name redis -p 6379:6379 -d redis:latest

进入Redis容器使用redis-cli命令进行连接

docker exec -it redis redis-cli

redis_docker

RabbitMQ 安装

1)下载rabbitmq3.12-management的docker镜像

docker pull rabbitmq:3.12-management

2)docker 启动 RabbitMQ 服务

docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
-v /mydata/rabbitmq/data:/var/lib/rabbitmq \
-d rabbitmq:3.12-management

3)开通 RabbitMQ 服务端口防火墙

# rabbitmq 客户端访问rabbitmq 服务端口号
firewall-cmd --zone=public --add-port=5672/tcp --permanent
# rabbitmq 客户端访问rabbitmq 管理后台服务端口号
firewall-cmd --zone=public --add-port=15672/tcp --permanent
# 使开通的防火墙生效
firewall-cmd --reload

开通rabbitmq 服务端口的防火墙之后还需要登录往云服务控制台中的安全组入站规则添加对 5672和15672端口的放行,否则无法通过浏览器访问rabbitmq 控制台页面。

  • 访问地址查看是否安装成功:http://47.120.47.250:15672/

rabbitmq_login

  • 输入账号密码并登录:guest/guest
    rabbitmq_home
  • 创建帐号并设置其角色为管理员:mall/mall1234
    rabbitmq_admin_mall
  • 给mall用户分配权限和/mall虚拟host
    rabbitmq_mall_permission
  • 点击mall用户进入用户配置页面并给mall用户配置该虚拟host的权限
    rabbitmq_hosts

ElasticSearch 与 Kibana 安装

ES 与 Kibana的安装请参考笔者之前写过的文章 Docker 安装7.12.1版本ElasticSearch、Kibana及中文分词器

MongoDB安装

MongoDB 的安装请参考笔者之前写过的文章文档型数据库MongoDB的安装与入门操作

Nacos 安装

Nacos的安装笔者没有使用docker安装,而是通过上传nacos-server-2.1.0.tar.gz压缩包到云服务器上的/usr/local目录,然后执行以下命令完成解压和安装

# 解压
tar -zxvf nacos-server-2.1.0.tar.gz
# 进入bin目录
cd ./nacos/bin
# 以单机模式启动nacos服务
sh startup.sh -m standalone
# 启动nacos 成功后执行命令查看启动日志
cat /usr/local/nacos/logs/start.out

控制台出现 nacos 启动成功的日志

   ,--.,--.'|,--,:  : |                                           Nacos 2.1.0
,`--.'`|  ' :                       ,---.               Running in stand alone mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 8848
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 1208727
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://172.29.68.237:8848/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'2024-03-05 23:55:14,468 INFO Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@285f09de' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)2024-03-05 23:55:14,473 INFO Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)2024-03-05 23:55:14,901 INFO Tomcat initialized with port(s): 8848 (http)2024-03-05 23:55:15,345 INFO Root WebApplicationContext: initialization completed in 4955 ms2024-03-05 23:55:20,923 INFO Initializing ExecutorService 'applicationTaskExecutor'2024-03-05 23:55:21,074 INFO Adding welcome page: class path resource [static/index.html]2024-03-05 23:55:21,427 INFO Creating filter chain: Ant [pattern='/**'], []2024-03-05 23:55:21,630 INFO Initializing ExecutorService 'taskScheduler'2024-03-05 23:55:21,660 INFO Exposing 2 endpoint(s) beneath base path '/actuator'2024-03-05 23:55:21,832 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'2024-03-05 23:55:21,836 INFO Nacos started successfully in stand alone mode. use embedded storage

开通 nacos 8848 和 9848 端口防火墙,前者用于客户端与nacos服务端http 协议通信和 grpc 通信协议端口

# nacos 客户端访问nacos 服务端http协议端口号
firewall-cmd --zone=public --add-port=8848/tcp --permanent
# nacos 客户端访问nacos 服务端 grpc 协议端口号
firewall-cmd --zone=public --add-port=9848/tcp --permanent
# 使开通的防火墙生效
firewall-cmd --reload

最后,记得登录往云服务控制台中的安全组入站规则添加对 8848 和9848端口的放行

安装 Nginx 服务

Nginx是一个轻量级的Web服务器,后面我们要部署Vue项目打包后的zip包这就需要用到Nginx服务。这里我们也选择使用docker容器来安装 Nginx 服务, 因为无论是使用tar.gz包安装需要经过编译安装,这个过程非常容易出错,笔者一开始选择了使用tar.gz包安装,但却在安装过程中出现各种报错。于是索性使用Docker容器安装,没想到非常顺利就把Nginx安装好了。

执行如下命令安装并启动Nginx

# 拉取Nginx 镜像
docker pull nginx
#运行
docker run --name nginx-test -p 80:80 -d nginx

启动Nginx成功后执行如下命令进入docker使用沙箱隔离机制给Nginx分配的系统空间

docker exec -it nginx-test /bin/bash

进入Nginx的隔离系统后,执行ls命令可看到Docker容器给Nginx服务分配的系统根目录

[root@iZf8zdh51orpja1xwy1mutZ bin]# docker exec -it nginx-test /bin/bash
root@4b0c1dff5fe8:/# ls
bin   dev                  docker-entrypoint.sh  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc                   lib   lib64  media   opt  root  sbin  sys  usr
root@4b0c1dff5fe8:/#

docker 安装的 Nginx 服务的 几个重要文件分别在隔离系统中的以下几个目录:

  • nginx配置文件位置:/etc/nginx/nginx.conf, 其中nginx.conf文件中引入了/etc/nginx/conf.d/default.conf配置文件;
  • html目录位置:/usr/share/nginx/html;
  • 访问与错误日志位置:/var/log/nginx/access.log/var/log/nginx/error.log
  • nginx.pid文件位置: /run/nginx.pid,用于存放nginx服务的进程id

docker沙箱系统中我们不好修改 nginx 的配置文件,我们可以docker container cp命令将nginx的配置文件目录拷贝到宿主机中的/mydata/nginx 目录下:

docker container cp nginx-test:/etc/nginx /mydata/nginx/

反之,我们也可以使用docker container cp 将宿主机中的文件拷贝到docker容器中,然后通过执行docker restart nginx-test 命令重启nginx服务。

部署后端SpringCloud微服务jar包

这里我们为了方便演示并考虑服务器能承受的最大运行内存,我们目前只启动3个微服务,分别是mall-gatewaymall-authmall-portal 3 个微服务。

1)修改mall-gatewaymall-auth 两个子模块中的bootstrap-prod.yml 配置文件

spring:cloud:nacos:discovery:server-addr: 47.113.205.244:8848 #注意使用服务器ip地址不需要加http协议#        server-addr: http://nacos-registry:8848config:
#        server-addr: http://nacos-registry:8848file-extension: yamlserver-addr: 47.113.205.244:8848
logging:file:path: ./logslevel:root: infosql: debugweb: info

主要修改了nacos的地址,改为云服务上部署的nacos服务地址,并加上了日志文件位置和日志级别配置。

2)修改mall-portal子模块中的``bootstrap-prod.yml 配置文件

spring:cloud:nacos:discovery:server-addr: 47.113.205.244:8848config:server-addr: 47.113.205.244:8848file-extension: yamldatasource:url: jdbc:mysql://134.175.187.61:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=trueusername: mallSwarmpassword: mallPassword12345druid:initial-size: 5 #连接池初始化大小min-idle: 10 #最小空闲连接数max-active: 20 #最大连接数web-stat-filter:exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据stat-view-servlet: #访问监控网页的登录用户名和密码login-username: druidlogin-password: druidrabbitmq:host: 47.120.47.250port: 5672username: guestpassword: guestredis:host: localhost # Redis服务器地址database: 0 # Redis数据库索引(默认为0)port: 6379 # Redis服务器连接端口password:  # Redis服务器连接密码(默认为空)timeout: 3000ms # 连接超时时间(毫秒)
logging:file:path: ./logslevel:root: infosql: debugweb: info

主要修改了客户端连接nacosmysqlrabbitmq 三个服务的连接地址,并加上了日志文件和日志级别配置项。

3)打包上传到服务器

在IDEA中对三个子模块的Lifecycle生命周期函数,选中跳过测试模式开关按钮,依次执行 cleanpackage
mvnPackage
打包扣好后会在子模块对应的target目录下出现对应的<name>-1.0-SNAPSHOT.jar,将打包好的mall-gateway-1.0-SNAPSHOT.jarmall-auth-1.0-SNAPSHOT.jarmall-portal-1.0-SNAPSHOT.jar依次上传到2核4G配置的阿里云服务器上新建的/usr/local/mall/gateway/usr/local/mall/auth/usr/local/mall/portal目录下,并分别在各个子目录中新建logs目录。

4)运行启动微服务jar包脚本

执行如下命令启动三个微服务(因为笔者最熟悉的部署方式就是这种上传jar包后执行shell脚本完成部署,因此暂时没用docker部署,未来会切换成docker容器部署微服务)

# cd切换到gateway目录
cd /usr/local/mall/gateway
# 启动mall-gateway网关微服务
nohup java -jar -Dspring.profiles.active=prod -Dserver.port=8201  ./mall-gateway-1.0-SNAPSHOT.jar>./logs/app.log 2>&1 &
# cd切换到auth目录
cd ../auth
# 启动mall-auth 认证微服务
nohup java -jar -Dspring.profiles.active=prod -Dserver.port=8401  ./mall-auth-1.0-SNAPSHOT.jar>./logs/app.log 2>&1 &
# cd切换到portal目录
cd ../portal
# 启动mall-portal电商客户侧应用微服务
nohup java -jar -Dspring.profiles.active=prod -Dserver.port=8085 ./mall-portal-1.0-SNAPSHOT.jar>./logs/app.log 2>&1 &

启动成功后控制会打印出启动成功的微服务线程ID。

5)开通微服务端口防火墙

# 开通 mall-gateway服务端口防火墙
firewall-cmd --zone=public --add-port=8201/tcp --permanent
# 开通 mall-auth服务端口防火墙
firewall-cmd --zone=public --add-port=8401/tcp --permanent
# 开通 mall-portal服务端口防火墙
firewall-cmd --zone=public --add-port=8085/tcp --permanent
# 使开通的防火墙生效
firewall-cmd --reload

6)云服务器控制台安全组添加微服务端口入站规则
aliyunPorts
添加完入站规则后点击右边的保存按钮完成对指定端口的入站放行,下面对几个微服务端口的入站规则笔者已经全部添加好了。

然后我们登录Nacos服务的控制台(默认的登录用户名和密码为:nacos/nacos)
nacosServiceList
进入主页后点击左边菜单栏中的【服务管理】-> 【服务列表】就可以看到注册上来的三个微服务:mall-authmall-portal mall-gateway

站点效果

部署完成后,我们就可以在浏览器中输入站点网址 http://47.113.205.244回车后进入系统首页
mall_home_page
此时是以游客角色进入系统首页,点击任何一个链接后页面会弹框提示我们去登录
login_tip
点击【重新登录】按钮进入登录界面
login_form
输入用户名zhengsan和登录密码123456 点击登录按钮登录成功后再次进入首页
user_home_page
这次是以普通用户角色进入系统首页,点击下面的【小米官方旗舰店】则可跳转到【品牌详情】页
brand_detail
点击其中一个商品【小米 红米5A】则可进入购物页面
xiaomi_shoping
点击右边的【加入购物车按钮】后,然后点击【购物车】按钮进入购物车页面
shoping_car
继续点击【去结算】则进入【创建订单】页面
create_order
后面的流程笔者就不继续演示了,大家把mall项目部署到自己的云服务器上后就可以自行操作熟悉各种场景了。

结语

本文主要介绍了如何在付服务器Linux系统环境下搭建部署mall电商项目所需要的基础设施以及中间件服务,包括JDK8DockerMysqlRabbitMqRedisMongoDBElasticSearchNacosNginx等,大部分基础设施服务采用了Docker容器安装,简单高效。并以jar包的形式部署了mall电商项目中的三个微服务项目,分别是:mall-gateway网关项目、mall-auth鉴权项目以及商城门户项目mall-portal,同时使用NginxDocker镜像服务服务部署了使用HBuilderX打包好的mall-web-app项目。前端访问后端接口统一走mall-gateway网关,本文的部署实践部分也附带了很多操作过程中的截图。

最后我们通过浏览器访问的方式体验了部署到阿里云服务器上的mall电商项目的网站效果,希望大家通过本文都能掌握具备独立开发项目的运维知识和技术。整个部署过程中,笔者也踩了不少坑,下一篇文章笔者会详细列举自己在部署过程中踩过的坑以及它们对应的解决方案。

阿里云服务器推荐

大家也看到了要部署整个mall电商项目的前后端服务,需要安装8个基础设施及中间件服务,5个后台微服务(mall-gatewaymall-authmall-portalmall-adminmall-monitor)以及两个前端服务(mall-app-webmall-admin-web)等多达15个服务,占用的运行内存不可谓不高,所以需要至少两台云服务器才能支撑整个项目的稳定运行。如果要部署自己的mall电商项目独立站点,那就少不了要购买云服务器。

部署好mall这样一个多模块微服务项目少购买一两台云服务器,笔者的这个mall项目的多数jar包就部署在了一台2核4G配置的阿里云服务器上。亲身体验过,不仅好用,而且价格非常实惠。

新人购买一台2核4G配置的阿里云服务器3个月只需要60多块钱,而购买一台2核2G配置的ECS云服务器一年只需要99元,非常划算。感兴趣的老铁们可以复制下面的链接到浏览器中进入【阿里云小站】购买一台属于自己的云服务器,不仅有助于提高我们独立开发网站的能力,而且有一天说不定还能还能依靠自己的网站变现给自己带来一份不菲的副业收入,小伙伴们有想法就赶紧去行动吧!点击下面的【阿里云小站】链接就可以去选购自己想要的阿里云服务器了。
阿里云小站
下面是阿里云服务器产品预览图
aliyun_servers
原创不易,能看到这里的老铁真的是铁粉无疑了!作者需要你们的点赞、在看和转发一套三连来鼓励他写出更多更好的优质文章,谢谢!

关注微信公众号【阿福谈Web编程】,并在公众号后台发送关键字【mall项目源码】即可获得mall前后端项目的源码git仓库地址链接。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文献阅读:DEA-Net:基于细节增强卷积和内容引导注意的单图像去雾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;DEA-Net&#xff1a;基于细节增强卷积和内容引导注意的单图像去雾1、研究背景2、方法提出3、相关知识3.1、DEConv3.3、多重卷积的…

python 基础知识点(蓝桥杯python科目个人复习计划61)

今日复习内容&#xff1a;想到什么复习什么 因为比赛用到的编辑器是IDLE&#xff0c;所以从现在开始&#xff0c;我就不用pycharm了。 例题1&#xff1a; 从1到2020的所有数字中&#xff0c;有多少个2&#xff1f; 这个题是一个填空题&#xff0c;我用的方法是先在编辑器上…

python自动化测试如何做数据缓存 ?这个第三方包推荐给你,方便又简单!

1.数据缓存说明 数据缓存可以说也是项目开发中比不可少的一个工具 &#xff0c;像我们测试的系统中 &#xff0c;你都会见到像Redis一样的数据缓存库 。使用缓存数据库的好处不言而喻&#xff0c;那就是效率高 &#xff0c;简单数据直接放在缓存中 &#xff0c;存取简单方便 。…

好物周刊#47:快捷启动器

https://github.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. Tianji All-in-One 的数据洞察中心&#xff0c;同时具备网站分析器 状态监控器 服务状态上报的功能。 2. Ip2…

论文笔记:Efficient Training of Language Models to Fill in the Middle

导语 Decoder-only的模型只能从左向右看&#xff0c;无法利用双向信息完成填空等操作&#xff0c;本文是OpenAI最早提出使用Fill-in-the-model到Autoregressive形式的模型中的文章&#xff0c;启发了后面一些Text-to-Code的大模型&#xff0c;比如InCoder&#xff0c;SantaCod…

Linux下下载安装JDK配置Java环境变量

Linux下下载安装JDK配置Java环境变量 1. 下载JDK 下载链接&#xff1a;(https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 2. 上传至服务器并解压 可通过shell工具进行上传&#xff0c;我这里是上传安装在/opt目录 解压jdk-17.0.10_linux-x64_b…

Nacos注册中心的部署及使用(超详细)

目录 1 前言 2 注册中心的原理 3 Linux上Nacos的部署 3.1 Mysql的部署 3.2 存储Nacos数据的数据库的建立 3.3 准备Nacos的环境文件 3.4 部署Nacos 3.5 检查是否成功 3.5.1 查看日志 3.5.2 访问Nacos 4 Java中的配置及食用方法 4.1 引入依赖坐标 4.2 配置Nacos 4…

苍穹外卖学习-----2024/03/09

1.菜品分页查询 代码在这里 分页查询菜品 2.删除菜品 [链接]param 1、概览 本文将带你了解 Spring 中 RequestParam 注解的用法。 简单地说&#xff0c;可以使用 RequestParam 从请求中提取查询参数、表单参数甚至是多个参数。 2、示例端点 假设我们有一个端点 /api/foos&a…

11. 搭建较通用的GoWeb开发脚手架

文章目录 导言一、加载配置二、初始化日志三、初始化MySQL连接四、初始化Redis连接五、初始化gin框架内置的校验器使用的翻译器六、注册路由七、 启动服务八、测试运行九&#xff1a;注意事项 代码地址&#xff1a;https://gitee.com/lymgoforIT/bluebell 导言 有了前述知识的…

Linux 之五:权限管理(文件权限和用户管理)

1. 文件权限 在Linux系统中&#xff0c;文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。 每个文件或目录都有一个包含9个字符的权限模式&#xff0c;这些字符分为三组&#xff0c;每组三个字符&#xff0c;分别对应文件所有者的权限…

基于springboot+vue的食品安全管理系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 1 首页 2 后台登录 3 食品信息添加页面 4 食品查询 三、库表设计 四、论文 前言 从事食品行业的商家可能会对于食品的储存以及食品的销售&#xff0c;都有着不同门道的想法&#xff0c;那么如何能将这些想法一一实现&#xff0c;…

【Linux】CentOS网络故障排查大揭秘: 实战攻略解读

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 检查网络连接状态&#xff1a; 检查网络配置&#xff1a; 重启网络服务&#xff1a; 检查防火墙设置&#xff1a; 查看日志文…