nginx实战演练

news2024/11/16 0:55:56

目录

一.Nginx架构和安装(未完待续)

<1>.Nginx概述

<2>.Nginx架构和进程

<3>.Nginx模块

<4>.Nginx安装(编译安装)

二.Nginx基础配置

<1>.关闭debug

<2>.将nginx软件添加到环境变量

<3>.开机自启动脚本

<4>.nginx的平滑升级及版本回滚(未完待续)

三.Nginx核心配置

<1>.实现nginx的高并发配置

<2>.root和alias(未完待续)

<3>.location详细使用(未完待续)

<4>.账户认证功能

<5>.自定义错误页面

<6>.自定义错误日志

<7>.检测文件是否存在

<8>.长连接配置

<9>.作为下载服务器

四.Nginx高级配置

<1>.状态页

<2>.压缩功能


一.Nginx架构和安装(未完待续)

<1>.Nginx概述

<2>.Nginx架构和进程

<3>.Nginx模块

<4>.Nginx安装(编译安装)

        源码安装需要提前准备标准的编译器,GCC的全称是(GNU Compiler collection),其有GNU开发,并以GPL即LGPL许可,是自由的类UNIX即苹果电脑Mac OS X操作系统的标准编译器,因为GCC原本只能处理C语言,所以原名为GNU C语言编译器,后来得到快速发展,可以处理C++,Fortran,pascal,objective C,java以及Ada等其他语言,此外还需要Automake工具,以完成自动创建Makefile的工作,Nginx的一些模块需要依赖第三方库,比如: pcre(支持rewrite),zlib(支持gzip模块)和openssl(支持ssl模块)等。
1.安装nginx模块需要依赖的模块
[root@nginx ~]# dnf install gcc pcre-devel zlib-devel openssl-devel -y

2.解压上传的nginx压缩包

[root@nginx ~]# tar zxf nginx-1.24.0.tar.gz

3.创建了一个名为nginx的用户,该用户没有家目录,并且被配置为不能通过/sbin/nologin登录,用于运行Nginx的系统账户。

[root@nginx ~]# useradd -s /sbin/nologin -M nginx

4.cd到解压后的目录下可以看到包含的文件

[root@nginx ~]# cd nginx-1.24.0/
[root@nginx nginx-1.24.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

5.检查系统环境,确保所有必要的依赖都已安装,并准备编译软件

[root@nginx nginx-1.24.0]# ./configure --prefix=/usr/local/nginx \
> --user=nginx \                          # 指定nginx运行用户   
> --group=nginx \                         # 指定nginx运行组
> --with-http_ssl_module \                # 支持https://
> --with-http_v2_module \                 # 支持http版本2
> --with-http_realip_module \             # 支持ip透传
> --with-http_stub_status_module \        # 支持状态页面
> --with-http_gzip_static_module \        # 支持压缩
> --with-pcre \                           # 支持正则
> --with-stream \                         # 支持tcp反向代理
> --with-stream_ssl_module \              # 支持tcp的ssl加密
> --with-stream_realip_module             # 支持tcp的透传ip

6.开始编译并将编译好的文件安装到指定目录

[root@nginx nginx-1.24.0]# make && make install 

二.Nginx基础配置

<1>.关闭debug

1.估算nginx的磁盘空间使用量,此时所占空间较大

[root@nginx ~]# du -sh nginx-1.24.0
26M	nginx-1.24.0

2.关闭nginx服务的debug功能

[root@nginx nginx-1.24.0]# vim auto/cc/gcc

3.重新安装编译

[root@nginx nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
[root@nginx nginx-1.24.0]# make && make install 

<2>.将nginx软件添加到环境变量

1.把nginx软件的命令执行路径添加到环境变量中

[root@nginx nginx-1.24.0]# vim ~/.bash_profile 
export PATH=$PATH:/usr/local/nginx/sbin

2.重新加载文件生效

[root@nginx nginx-1.24.0]# source ~/.bash_profile 

3.此时可以使用nginx命令查看版本

[root@nginx nginx-1.24.0]# nginx -v
nginx version: nginx/1.24.0

<3>.开机自启动脚本

1.编写自启动脚本

[root@nginx ~]# vim /lib/systemd/system/nginx.service 
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2.重新加载文件并开启nginx服务

[root@nginx ~]# systemctl daemon-reload 
[root@nginx ~]# systemctl start nginx.service 

<4>.nginx的平滑升级及版本回滚(未完待续)

1.将旧 Nginx 二进制文件换成新 Nginx 程序文件(注意先备份 )
2.向 master 进程发送 USR2 信号
3.master 进程修改 pid 文件名加上后缀 .oldbin, 成为 nginx.pid.oldbin
4.master 进程用新 Nginx 文件启动新 master 进程成为旧 master 的子进程 , 系统中将有新旧两个 Nginx
5.进程共同提供 Web 服务 , 当前新的请求仍然由旧 Nginx worker 进程进行处理 , 将新生成的 master
程的 PID 存放至新生成的 pid 文件 nginx.pid
6.向旧的 Nginx 服务进程发送 WINCH 信号,使旧的 Nginx worker 进程平滑停止
7.向旧 master 进程发送 QUIT 信号,关闭老 master ,并删除 Nginx.pid.oldbin 文件
8.如果发现升级有问题 , 可以回滚∶向老 master 发送 HUP ,向新 master 发送 QUIT

三.Nginx核心配置

<1>.实现nginx的高并发配置

1.查看用户进程的文件限制,此时是1024

[root@nginx ~]# sudo -u nginx ulimit -n
1024

2.压力测试

(1).100个请求同时发送,总共发送500条,0条失败,测试成功

[root@nginx ~]# ab -n 500 -c 100 http://172.25.254.100/index.html

(2).2000个请求同时发送,总共发送50000条,576条失败,测试失败

[root@nginx ~]# ab -n 50000 -c 2000 http://172.25.254.100/index.html

3.修改pam限制

[root@nginx ~]# vim /etc/security/limits.conf 

4.进入配置文件设置最大并发连接数为100000并重载文件

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
events {
    worker_connections  100000;         #设置单个工作进程的最大并发连接数
}
[root@nginx ~]# nginx -s reload
[root@nginx ~]# sudo -u nginx ulimit -n
100000

5.压力测试:2000个请求同时发送,总共发送50000条,0条失败,测试成功

[root@nginx ~]# ab -n 50000 -c 2000 http://172.25.254.100/index.html

<2>.root和alias(未完待续)

root:指定web的家目录,在定义location的时候,文件的绝对路径等于 root+location
alias:定义路径别名,会把访问的路径重新定义到其指定的路径,文档映射的另一种机制;仅能用于
location上下文,此指令使用较少
注意: root, 给定的路径对应于 location 中的 /uri 左侧的 /
           alias , 给定的路径对应于 location 中的 /uri 的完整路径
1.使用epoll事件驱动并将子配置文件目录映射到主配置文件中,重载文件
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
events {
    worker_connections  100000;
    use epoll;                                #使用epoll事件驱动
}

http  {
    ######
    include "/usr/local/nginx/conf.d/*.conf"; #在响应报文中将指定的文件扩展名映射至MIME对应的类型
    ######
}
[root@nginx ~]# nginx -s reload

2.创建子配置文件并写入规则,重载文件

[root@nginx ~]# mkdir -p /usr/local/nginx/conf.d
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
server {
        listen 80;
        server_name www.rhel9.org;
        root /data/web/html;
        index index.html;
}
[root@nginx ~]# nginx -s reload

3.写入测试文字

[root@nginx ~]# echo www.rhel9.org > /data/web/html/index.html 

4.测试:记得做本地解析

<3>.location详细使用(未完待续)

<4>.账户认证功能

1.创建用户,完成后可查看信息

[root@nginx ~]# htpasswd -cm /usr/local/nginx/.htpasswd admin
New password: 
Re-type new password: 
Adding password for user admim

[root@nginx ~]# htpasswd -m /usr/local/nginx/.htpasswd liu
New password: 
Re-type new password: 
Adding password for user liu

[root@nginx ~]# cat /usr/local/nginx/.htpasswd 
admin:$apr1$okMzYJLu$Sk/0N1AUZoDjgpldJUi2a0
liu:$apr1$DMbv5BB8$HbeB4TMW9UZfAScnzjkq.1

2.创建文件并写入测试文字

[root@nginx ~]# mkdir /data/web/liu
[root@nginx ~]# echo liu > /data/web/liu/index.html 

3.子配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
        location /liu {
                root /data/web;
                auth_basic "login password !!!";                   #用户在浏览器看到的认证信息提示
                auth_basic_user_file "/usr/local/nginx/.htpasswd"; #http认证文件路径
        }
[root@nginx ~]# nginx -s reload

4.浏览器测试

<5>.自定义错误页面

1.创建文件并写入测试文字

[root@nginx ~]# mkdir -p /data/web/errorpage
[root@nginx ~]# echo sorry! > /data/web/errorpage/40x.html 

2.子配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
server {
        listen 80;
        server_name www.rhel9.org;
        root /data/web/html;
        index index.html;
        error_page 404 /40x.html;              #第一步

        location = /40x.html {
                root /data/web/errorpage;      #第二步
        }
}
[root@nginx ~]# nginx -s reload

3.测试

<6>.自定义错误日志

1.创建自定义日志存放目录

[root@nginx ~]# mkdir /var/log/rhel9.org

2.子配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
server {
        listen 80;
        server_name www.rhel9.org;
        root /data/web/html;
        index index.html;
        error_page 404 /40x.html;
        error_log /var/log/rhel9.org/error.log;           #错误日志
        access_log /var/log/rhel9.org/access.log;         #成功日志

        location = /40x.html {
                root /data/web/errorpage;
        }
}
[root@nginx ~]# nginx -s reload

3.测试

<7>.检测文件是否存在

       try_files 会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一 个内部重定向,之前的参数只设置内部 URI 的指向。最后一个参数是回退 URI 且必须存在,否则会出现内 500 错误。
1.创建文件并写入测试文字
[root@nginx ~]# mkdir /data/web/html/error
[root@nginx ~]# echo nobody > /data/web/html/error/default.html
2.子配置文件中写入规则并重启
[root@nginx ~]# vim /usr/local/nginx/conf.d/vhost.conf 
server {
        listen 80;
        server_name www.rhel9.org;
        root /data/web/html;
        index index.html;
        error_page 404 /40x.html;
        error_log /var/log/rhel9.org/error.log;          
        access_log /var/log/rhel9.org/access.log;        
        try_files $uri $uri.html $uri/index.html /error/default.html;   #配置

        location = /40x.html {
                root /data/web/errorpage;
        }
}
[root@nginx ~]# nginx -s reload

3.测试

<8>.长连接配置

1.主配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf

keepalive_timeout    #设定保持连接超时时长,0表示禁止长连接开启长连接后,返回客户端的会话保持时间为60s,单次长连接累计请求达到指定次数请求或65秒就会被断开,第二个数字60为发送给客户端应答报文头部中显示的超时时间设置为60s,如不设置客户端将不显示超时时间。

keepalive_requests   #在一次长连接上所允许请求的资源的最大数量

[root@nginx ~]# nginx -s reload

2.测试:需要用到telnet测试工具

[root@nginx ~]# yum telnet install -y
[root@nginx ~]# telnet www.rhel9.org 80
Trying 172.25.254.100...
Connected to www.rhel9.org.
Escape character is '^]'.
GET / HTTP/1.1                            #输入动作
HOST:www.rhel9.org                        #输入访问HOST
                                          #回车
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Sat, 18 Aug 2024 0:16:16 GMT
Content-Type: text/html
Content-Length: 15
Last-Modified: Sat, 17 Aug 2024 11:49:12 GMT
Connection: keep-alive
ETag: "669b7a08-f"
Accept-Ranges: bytes

<9>.作为下载服务器

1.创建文件

[root@nginx ~]# mkdir /data/web/download

2.生成一个大小为100MB的文件 

[root@nginx ~]# dd if=/dev/zero of=/data/web/download/liufile bs=1M count=100

3.子配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf.d/status.conf 
        location /download {         
             root /data/web;                  
             autoindex on;                          #自动索引功能
             autoindex_localtime on;                #on表示显示本机时间而非GMT
             autoindex_exact_size off;              #计算文件确切大小
             limit_rate 1024k;                      #限速,默认不限速
        }
[root@nginx ~]# nginx -s reload

4.测试

四.Nginx高级配置

<1>.状态页

1.子配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf.d/status.conf 
server {
    listen 80;
    server_name status.rhel9.org;
    root /data/web/html;
    index index.html;

    location /status {
        stub_status;
        allow 172.25.254.1;
        deny all;
    }
}
[root@nginx ~]# nginx -s reload

2.测试

Active connections
当前处于活动状态的客户端连接数
accepts
统计总值, Nginx 自启动后已经接受的客户端请求连接的总数
handled
统计总值, Nginx 自启动后已经处理完成的客户端请求连接总数
requests
统计总值, Nginx自启动后客户端发来的总的请求数,数值越大 , 说明排队现象严重 , 性能不足
Reading
当前状态,正在读取客户端请求报文首部的连接的连接数
Writing
当前状态,正在向客户端发送响应报文过程中的连接数 , 数值越大说明访问量很大
Waiting
当前状态,正在等待客户端发出请求的空闲连接数

<2>.压缩功能

        Nginx 支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的 IT 支出,不过会占用相 应的 CPU 资源。

1.主配置文件中写入规则并重启

[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
    gzip  on;                       #启用gzip压缩,默认关闭
    gzip_comp_level 5;              #压缩比由低到高从1到9,默认为1,值越高压缩后文件越小,但是消耗cpu比较高。基本设定未4或者5
    gzip_min_length 10k;            #gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_http_version 1.1;          #启用压缩功能时,协议的最小版本,默认HTTP/1.1
    gzip_vary on;                   #如果启用压缩,是否在响应报文首部插入“Vary: Accept-Encoding”,一般建议打开
    gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/gif image/png;
                                    #指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错
[root@nginx ~]# nginx -s reload

2.创建两个测试文件

[root@nginx ~]# echo small > /data/web/html/small.html 
[root@nginx ~]# cat /usr/local/nginx/logs/access.log > /data/web/html/big.html 

3.测试:大于10k的文件被压缩了

[root@nginx ~]# du -sh /data/web/html/big.html 
62M	    /data/web/html/big.html
[root@nginx ~]# du -sh /data/web/html/small.html 
4.0K	/data/web/html/small.html

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

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

相关文章

EmguCV学习笔记 VB.Net 2.5 Mat类、Matrix类和Image类的相互转换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV学习笔记目录 Vb.net EmguCV学习笔记目录 C# 笔者的博客网址&#xff1a;VB.Net-CSDN博客 教程相关说明以及如何获得pdf教…

基于Vue的MES生产制造执行系统

TOC springboot307基于Vue的MES生产制造执行系统 第1章 绪论 1.1 选题动因 到现在为止&#xff0c;互联网已经进入了千家万户&#xff0c;最普通的平民百姓也有属于自己的智能设备&#xff0c;计算机各种技术的储备也是相当的丰富&#xff0c;并且实现也是没有难度&#xf…

VSCode配置ssh免密连接远程服务器

我配置了免密设置(Windows利用ssh免密码登录Linux)&#xff0c;git bash已经能够正常连接了&#xff0c;但是vscode还是不行&#xff0c;很奇怪。 VSCode报错信息&#xff1a; [17:55:50.360] SSH Resolver called for "ssh-remote106.52.2.19", attempt 5, (Recon…

《机器学习》——运用OpenCV库中的KNN算法进行图像识别

文章目录 KNN算法的简单介绍下载OpenCV库实验内容实验结果完整代码自己手写数字传入模型中测试 KNN算法的简单介绍 一、KNN算法的基本要素 K值的选择&#xff1a;K值代表选择与新测试样本距离最近的前K个训练样本数&#xff0c;通常K是不大于20的整数。K值的选择对算法结果有重…

电压检测之比较电路

设计这款电路主要是本人在锂电池充电电路中挖了一个坑&#xff0c;对电源显示芯片的数据手册内容撰写不够详细的不好感受&#xff0c;所以自己根据比较电路的思想设计出了电压检测并反馈的电路&#xff0c;亦在提供一种电压检测的思想不需要借助ADC采集&#xff0c;在电路硬件上…

基于hive的海鲜交易数据分析系统设计与实现【hadoop、Flask、某东爬虫、sqoop、flume、mysql、hdfs】商品可换

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍研究背景国内外研究现状研究目的研究意义 关键技术理论介绍数据采集及预处理数据采集字段介绍数据预处理hadoop集群搭建及实现过程hive建表hive大数据分析 可视化展示店铺维度画像分…

AR 眼镜之-开关机定制-实现方案

目录 &#x1f4c2; 前言 AR 眼镜系统版本 开关机定制 1. &#x1f531; 技术方案 1.1 技术方案概述 1.2 实现方案 1&#xff09;开机 Logo 2&#xff09;开机音效 3&#xff09;开机动画 4&#xff09;关机动画 5&#xff09;关机弹窗 2. &#x1f4a0; 开机 Logo…

C++笔试题汇总

C笔试题汇总记录 一、概述二、概念分类1. 结构体1. C 和 C 中 struct 有什么区别&#xff1f;2. C中的 struct 和 class 有什么区别&#xff1f; 2. 类相关1. 类的大小1. 空类的大小2. 一般非空类大小3. 有虚函数类4. 有虚函数类的继承5. 只有虚函数6. 静态数据成员 2. C的三大…

【分享】格力手机色界G0245D 刷REC、root、 救砖、第三方rom教程和资源

开门见山 帮别人弄了一台 格力G0245D&#xff0c;把找到的资源和教程分享一下 教程 这个写的很详细了格力手机色界G0245D-Root-最简指南 不过教程里刷rec这一步漏了加上电源键&#xff0c;加上就行了。 附加参考&#xff1a;格力手机2刷机 格力手机二代刷机 GREE G0215D刷机…

C++ 特殊类设计以及单例模式

目录 1 不能被拷贝 2 只能在堆上创建对象 3 只能在栈上创建对象 4 禁止在堆上创建对象 5 不能被继承的类 6 单例类 特殊类就是一些有特殊需求的类。 1 不能被拷贝 要设计一个防拷贝的类&#xff0c;C98之前我们只需要将拷贝构造以及拷贝赋值设为私有&#xff0c;同时只声明…

在HFSS中对曲线等结构进行分割(Split)

在HFSS中对曲线进行分割 我们往往需要把DXF等其他类型文件导入HFSS进行分析&#xff0c;但是有时需要对某一个曲线单独进行分割成两段修改。 如果是使用HFSS绘制的曲线&#xff0c;我们修改起来非常方便&#xff0c;修改参数即可。但是如果是导入的曲线&#xff0c;则需要使用…

代码随想录训练营 Day31打卡 贪心算法 part05 56. 合并区间 738. 单调递增的数字 968. 监控二叉树

代码随想录训练营 Day31打卡 贪心算法 part05 一、 力扣56. 合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中…

【JavaEE】JVM 内存区域划分,以及 Java 垃圾回收机制引用计数器,可达性分析等

目录 1. JVM执行流程 2. JVM运行时数据区 2.1 堆 2.2 Java虚拟机栈(线程私有) 2.3本地方法栈(线程私有) 2.4 程序计数器 2.5 元数据区 3. JVM的类加载机制 1) 加载 2) 验证 3) 准备 4) 解析 5) 初始化 双亲委派模型 4. java垃圾回收 4.1 死亡对象判断方法 a) …

超精细CG杰作:8K壁纸级官方艺术插画,展现极致美丽与细节的汉服女孩

极致精美的数字艺术杰作&#xff1a;8K壁纸级别的官方插画&#xff0c;展现超高清细节与和谐统一的美感&#xff0c;女孩的精致面容与眼神在光影下熠熠生辉&#xff0c;汉服主题下的超高分辨率作品&#xff0c;文件巨大&#xff0c;细节丰富&#xff0c;令人惊叹。 正向提示词…

内存泄漏之如何使用Visual Studio的调试工具跟踪内存泄漏?

使用Visual Studio的调试工具跟踪内存泄漏是一个系统性的过程&#xff0c;主要包括启用内存泄漏检测、运行程序、分析内存使用情况以及定位泄漏源等步骤。 Visual Studio提供了多种方式来检测内存泄漏&#xff0c;你可以根据自己的需求选择合适的方法。 注意&#xff1a;下面…

父页面选项式api,子页面组合式api,子页面如何获取父页面的方法以及传值到将子页面的值传给父页面

开发的项目中是vue3的项目&#xff0c;但是有些同事用vue2中的选项式api写法&#xff0c;有些同事使用的是vue3组合式api的写法&#xff0c;此时子页面需要获取父页面的方法把数据传入父页面的方法中 父页面&#xff1a; 在父页面中order-item组件中创建自定义方法navigation和…

Leetcode每日刷题之剑指offer 57.和为s的两个数字(C++)

1.题目解析 现在题目改名为LCR.查找总价值为目标值的两个商品&#xff0c;虽然题目改变但是核心并未变化&#xff0c;都是需要寻找出和为指定数字的两数 2.算法原理 我们由题目知道给出的数组是递增的&#xff0c;所以在数组的首尾固定两个指针&#xff0c;判断其和是否为指定数…

Ceph篇之利用shell脚本实现批量创建bucket桶

Ceph创建bucket桶 在 Ceph 中创建桶&#xff08;bucket&#xff09;需要使用 Ceph 对象网关&#xff08;RGW&#xff09;。 注&#xff1a;如果查看shell批量创建脚本请直接参见目录3 1. 利用radosgw-admin工具创建桶 确保 Ceph 集群和对象网关已正确配置 确保你的 Ceph 集群…

快速了解Vi 和 Vim 编辑器三种模式及快捷键使用

&#x1f600;前言 本篇博文是关于Vi 和 Vim 编辑器的三种模式及快捷键使用&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意…

大数据产业链图谱_产业链全景图_大数据行业市场分析

数据作为新型生产要素&#xff0c;是数字化、网络化、智能化的基础&#xff0c;已快速融入生产、分配、流通、消费和社会服务管理等各环节&#xff0c;影响着千行百业&#xff0c;推动着我国数字经济的蓬勃发展。 大数据又称巨量数据、海量数据&#xff0c;是由数量巨大、结构…