Nginx【概述、应用场景、环境准备、下载与安装、目录详解、】(一)-全面详解(学习总结---从入门到深化)

news2024/11/16 6:03:22

 

目录

Nginx概述

 Nginx 四大应用场景

为什么用Nginx

 环境准备

 Nginx下载与安装

 Nginx目录详解


Nginx概述

 Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。

 常见服务器

  1. Apache
  2. Tomcat

 

 举个栗子

没有Nginx的情况

 有了Nginx的话

 实时效果反馈

1. Nginx是____的事件驱动模型。

A 同步阻塞

B 同步非阻塞

C 异步阻塞

D 异步非阻塞

2. 下列描述Nginx说法错误的是。 

A 它可以高并发连接

B 内存消耗少

C 配置文件非常简单 

D Nginx是收费的

 Nginx 四大应用场景

 HTTP服务器

Nginx本身也是一个静态资源的服务器,当只有静态资源的时候, 就可以使用Nginx来做服务器,如果一个网站只是静态页面的话, 那么就可以通过这种方式来实现部署。

 反向代理

反向代理应该是Nginx使用最多的功能了,反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后 将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为 一个反向代理服务器。

 

 负载均衡

负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

 

 动静分离

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和 经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

 实时效果反馈

1. 下列针对Nginx描述错误的是____。

A 动静分离可以减轻服务器的压力

B 负载均衡可以提高项目的可用性

C 反向代理可以保证安全

D Nginx内存消耗大

为什么用Nginx

 背景

互联网飞速发展的今天,大用户量高并发已经成为互联网的主体. 怎样能让一个网站能够承载几万个或几十万个用户的持续访问呢?

  单机架构

 Tomcat 默认配置的最大请求数是150,也就是说同时支持150 个并发。具体能承载多少并发,须要看硬件的配置,线程CPU 越多性能越高,分配给JVM的内存越多性能也就越高,但也会加剧GC的负担。

引入反向代理实现负载均衡 

负载均衡就是一个web服务器解决不了的问题可以通过多个 web服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。

 总结

1、它可以高并发连接,官方测试能够支撑5万并发连接,在实际生产环境中可以支撑2到4万并发连接。

2、内存消耗少

3、购买F5 BIG-IP ,NetScaler等硬件负载均衡交换机需要10多万甚至几十万人民币。而Nginx为 开源软件,可以免费试用,并且可用于商业用途。

4、内置的健康检查功能:如果Nginx proxy后端的某台服务器宕机了,不会影响前端访问。 5、节省带宽,支持gzip压缩。

6、稳定性高:用于反向代理(负载均衡),宕机的概率微乎其微。

7、支持热部署。在不间断服务的情况下,对软件版本升级。

 实时效果反馈

1. 下列针对选择Nginx理由错误的是。

A 节省带宽

B 稳定性好

C 不支持压缩

D 内存消耗少

2. Nginx技术中负载均衡主要解决什么问题。

A 高并发

B 速度慢

C 稳定性

D 安全性

 环境准备

 学习环境

操作系统:Centos7.5 X64

 四项确认

1、确认网络

2、确认yum可用

3、确认防火墙

4、确认SELinux

一项安装

yum -y install gcc make automake pcre-devel
zlib zlib-devel openssl openssl-devel

参数:

gcc:编译依赖gcc环境

pcre:PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表 达式库。

zlib:zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip,所 以需要在linux上安装zlib库。

Openssl:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥 和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

 实时效果反馈

1. Linux系统中关闭防火墙命令正确的是。

A systemctl stop firewalld.service

B systemctl disable firewalld.service

C systemctl restart firewalld.service

D systemctl start firewalld.service

2. 下列可以确定Linux系统中是否有网络正确的命令是。

A ping www.baidu.com

B yum -list gcc

C service network restart

D souce /etc/profile

 Nginx下载与安装

 下载Nginx源码

官网下载Nginx软件:http://Nginx.org

 

 点击download进入下载页面

 Nginx 官方提供了三个类型的版本:

Mainline Version:主线版,是最新版,但未经过过多的生产测 试。

Stable Version:稳定版,生产环境使用版本。

Legacy Version:老版本。

注意:

我们需要下载的是 Stable Version。其中又分为两种版本: Linux 版与 Windows 版。开发时这两个版本我们都下载。 Linux 版用于生产环境,而 Windows 版用于开发测试,选择需要的版本进行下载。

 Nginx源码编译

1.创建存放源文件的文件夹

首先在目录/opt下创建apps目录,用于存放源文件以及解压后的文件

 2.上传Nginx到步骤1创建的目录下

3.解压 Nginx

[root@node1 apps]# pwd
/opt/apps
[root@node1 apps]# ls
Nginx-1.20.1.tar.gz
[root@node1 apps]# tar -zxvf Nginx-1.20.1.tar.gz
[root@node1 apps]# cd Nginx-1.20.1

进入到 Nginx 解压包目录/opt/apps/Nginx-1.20.1 目录中,查看 Nginx 的目录。

其中各个目录中存放的文件作用为:

auto:存放 Nginx 自动安装的相关文件

conf:存放 Nginx 服务器配置文件

configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成

contrib:存放由其他机构贡献的文档材料

html:存放 Nginx 欢迎页面

man:manual,手册,存放 Nginx 帮助文档

src:存放 Nginx 源码

 4.生成 makefile

在 Nginx 解压目录下运行 make 命令,用于完成编译。但此时会给出提示:没有指定目标,并且没有发现编译文件 makefile。

[root@node1 Nginx-1.20.1]# make
make: *** 没有指明目标并且找不到 makefile。 停止。

编译命令 make 需要根据编译文件 makefile 进行编译,所以在编译之前需要先生成编译文件 makefile。使用 configure 命令可以生成该文件。那么,configure 命令需要配置些什么参数呢?使用--help 可以查看到可以使用的参数说明。

 

configure 参数:
--prefix:Nginx 安装目录。注意,安装目录与解压目录不一样
--sbin-path:Nginx 命令文件
--modules-path:Nginx 模块存放路径
--conf-prefix:Nginx 配置文件存放路径
--pid-path:Nginx 的进程 id 文件
--error-log-path:错误日志文件
--http-log-path:http访问日志文件

安装编译参数

 5.配置参数

[root@node1 Nginx-1.20.1]# mkdir -p
/var/temp/nginx/client
[root@node1 Nginx-1.20.1]# pwd
/opt/apps/nginx-1.20.1
[root@node1 Nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy
\
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi

注意: /var/temp/Nginx/client目录需要手动创建。

 编译安装

make && make install

 这是两个命令,make 为编译命令,make install 为安装命令, 可以分别执行。这里使用&&将两个命令连接执行,会在前面命令执行成功的前提下才会执行第二个命令。

 实时效果反馈

1. 安装Nginx时如何指定安装目录

A   --sbin-path

B   --modules-path

C   --conf-path

D   --prefix

 Nginx目录详解

 

#安装目录由--prefix=/usr/local/Nginx
[root@node1 ~]# cd /usr/local/Nginx/
[root@node1 Nginx]# ll
总用量 0
drwxr-xr-x 2 root root 333 8月  27 15:37 conf
drwxr-xr-x 2 root root  40 8月  27 15:37 html
drwxr-xr-x 2 root root   6 8月  27 15:37 logs
drwxr-xr-x 2 root root  19 8月  27 15:37 sbin

注意:

执行命令 tree /application/Nginx ;如果tree命令找不到就执行

yum install tree -y安装

 conf目录

Nginx所有配置文件的目录,极其重要。在该目录中包含一个

Nginx.conf配置文件。

 

[root@node1 Nginx]# ll conf/
总用量 68
-rw-r--r-- 1 root root 1077 8月  27 15:37
fastcgi.conf
-rw-r--r-- 1 root root 1077 8月  27 15:37
fastcgi.conf.default
-rw-r--r-- 1 root root 1007 8月  27 15:37
fastcgi_params
-rw-r--r-- 1 root root 1007 8月  27 15:37
fastcgi_params.default
-rw-r--r-- 1 root root 2837 8月  27 15:37
koi-utf
-rw-r--r-- 1 root root 2223 8月  27 15:37
koi-win
-rw-r--r-- 1 root root 5231 8月  27 15:37
mime.types
-rw-r--r-- 1 root root 5231 8月  27 15:37
mime.types.default
-rw-r--r-- 1 root root 2656 8月  27 15:37
Nginx.conf
-rw-r--r-- 1 root root 2656 8月  27 15:37
Nginx.conf.default
-rw-r--r-- 1 root root  636 8月  27 15:37
scgi_params
-rw-r--r-- 1 root root  636 8月  27 15:37
scgi_params.default
-rw-r--r-- 1 root root  664 8月  27 15:37
uwsgi_params
-rw-r--r-- 1 root root  664 8月  27 15:37
uwsgi_params.default
-rw-r--r-- 1 root root 3610 8月  27 15:37
win-utf

html目录

Nginx的默认站点目录。

[root@node1 Nginx]# ll html/
总用量 8
-rw-r--r-- 1 root root 494 8月  27 15:37
50x.html #错误提示页面
-rw-r--r-- 1 root root 612 8月  27 15:37
index.html #访问Nginx时的首页

logs目录

存放Nginx的日志文件。 access.log error.log

#刚安装完Nginx,从未启动过的话logs目录下什么都没有,
只有启动Nginx后,才会出现以下三个文件
[root@node1 Nginx]# ll logs/
总用量 4
-rw-r--r-- 1 root root 0 8月  27 16:29
access.log #记录正常访问的日志
-rw-r--r-- 1 root root 0 8月  27 16:29
error.log #错误日志
-rw-r--r-- 1 root root 6 8月  27 16:29
Nginx.pid #Nginx进程id
[root@node1 Nginx]# cat logs/Nginx.pid
24514 #当前启动Nginx的master进程的id

sbin目录

Nginx命令的目录,如Nginx的启动命令。

[root@node1 Nginx]# ll sbin/
总用量 5884
-rwxr-xr-x 1 root root 6023208 8月  27 15:37
Nginx #启动关闭等操作的脚本
[root@node1 Nginx]# ./sbin/Nginx #启动Nginx
[root@node1 Nginx]# ps aux|grep Nginx #查看
Nginx的进程
root      24514  0.0  0.1  45996  1136 ?    
  Ss   16:29   0:00 Nginx: master process
./sbin/Nginx
nobody    24515  0.0  0.1  46444  1876 ?    
  S    16:29   0:00 Nginx: worker process

实时效果反馈

1. 下列不属于Nginx目录的是。

A html

B conf

C local

D sbin

2. 如何查看Nginx的进程__。

A ps aux|grep Nginx

B ./sbin/Nginx

C lsof -i:80

D ps list

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

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

相关文章

Linux基础:Vim编辑器实用指南

前言 Linux基础是学习云原生的重中之重,如果你还不知道学习路线可以参考: 耗时3个月,线下访谈30 csdn大佬,规划出了我的云原生学习路线 文章目录 前言vim的介绍vim的四种模式1. 插入模式1.1 进入插入模式:1.2 退出插入…

layui实现选择框搜索(下拉搜索)功能

1.可以使用官方介绍的方法,适用于form表单内的下拉搜索,外层需要使用layui-form样式,select标签内添加lay-search“”,此方法若外层不添加layui-form无法实现搜索功能,如下所示: 2.下面是另一种形式的下拉选…

【GESP】2023年06月图形化一级 -- 小猫寻宝

文章目录 小猫寻宝1. 准备工作2. 功能实现3. 设计思路与实现(1)角色、舞台背景设置a. 角色设置b. 舞台背景设置 (2)脚本编写a. 角色:Catb. 角色:Crystal 4. 评分标准 小猫寻宝 1. 准备工作 (1&…

kafka生产者api和数据操作

Kafka 生产者 发送流程 消息发送过程中涉及到两个线程——main线程和Sender线程 main线程 使用serializer(并非java默认)序列化数据,使用partitioner确认发送分区 在main线程中创建了一个双端队列RecordAccumulator,main线程将…

从0到1搭建spring cloud alibaba +springboot+nacos+dubbo微服务

版本关系: spring cloud alibaba各组件对应关系 创建父工程,pom.xml配置如下: 由以上版本对应关系: springboot版本:2.3.2.RELEASE spring cloud 版本选择:Hoxton.SR9 spring cloud alibaba版本选择&#…

【UE5 Cesium】02-Cesium for Unreal 添加在线数据集

上一篇: 【UE Cesium】01-在虚幻5中使用Cesium 步骤 1. 点击“connected to Cesium ion as xxx” 在弹出的网址中点击“Asset Depot”(资产仓库) 找到“Melbourne Photogrammetry”点击添加,添加到你的账户中。(这里我…

关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会

前言 一直做的PC端的项目开发,想做一下手机端的开发。后端基本上是不用怎么变化,主要变化的是前端,前端网页运行的地方不同,一个运行在手机,一个运行在PC网页上。微信小程序的开发和Vue框架开发有诸多相似之处&#xf…

smardaten用户手册全新发布!5个超实用的使用技巧(建议收藏!)

社区版发布后,很多用户自行下载安装使用,我们收到了一些客官关于产品文档的吐槽和建议~~于是,我们重新编排了用户手册,来帮助大家更快、更好、更简单的上手无代码开发。今天睿睿来跟大家分享用户手册更新点,以及如何使…

常用网络接口自动化测试框架

目录 一、RESTful(resource representational state transfer)类型接口测试 (一)GUI界面测试工具:jmeter (二)JAVA语言脚本测试(HttpClient) 二、WebService接口测试 (一)GUI界…

JAVA1

文章目录 计算机的硬件与软件DOS命令 计算机的硬件与软件 DOS命令

Flink-任务槽和并行度的关系

任务槽和并行度都跟程序的并行执行有关,但两者是完全不同的概念。简单来说任务槽是静态的概念,是指TaskManager具有的并发执行能力,可以通过参数taskmanager.numberOfTaskSlots进行配置;而并行度是动态概念,也就是Task…

菜鸟推出新一代资产管理操作系统“WIN”

在6月28日的2023全球智慧物流峰会上,菜鸟地网发布了新一代资产管理操作系统“WIN”。基于菜鸟地网多年积累的全球一体化物流基础设施网络和资产管理经验,依托物联网、大数据、人工智能等物流科技能力,“WIN”将为客户提供全链路的资产开发和运…

学习笔记20230629 -- 《分享在jsp分布式项目支援开发衍生功能时遇到和解决的问题》

1.jsp项目的页面跳转,需要后端的java技术做支撑,在java的接口文件中写跳转接口,使用ajax去请求这个跳转接口,将返回的数据(html标签代码),放到当前页面或弹窗的"content"属性中 2…

联合体结合位域的作用

联合体结合位域的作用 例如 这段代码,巧妙运用了位域和联合体的特性,rx370x_cfg_data_t位域控制每个成员的大小 使总大小为32,cfg_u32和位域的大小相等,因为联合体共用一个空间的原因,此时cfg_u32中存放的内容就是位域…

如何实现WinApp的UI自动化测试?自动化工具如何选择人?

WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp&…

遇到客户服务问题,有哪些解决方法?

在当今竞争激烈的商业世界中,客户服务已成为任何成功企业不可或缺的一部分。然而,许多企业仍然难以提供高质量的客户服务。今天,我们简单聊一聊客户服务会遇到哪些问题?怎么解决? 1、客户服务人员培训不足 中小企业在…

12 MFC常用控件(二)

文章目录 滑动条控件初始化滚动条滑动滚动条获取消息 微调控件进度条控件时间控件 滑动条控件 初始化滚动条 CSliderCtrl* sliderCtrl (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);sliderCtrl->SetRange(0,100);//设置范围sliderCtrl->SetPos(50);//当前显示在50//int nPos…

常见的锁策略CAS

目录 一、乐观锁&悲观锁 1.1、悲观锁 1.2、乐观锁 二、重量级锁&轻量级锁 2.1、轻量级锁 2.2、重量级锁 三、自旋锁&挂机等待锁 3.1、自旋锁 3.2、挂起等待锁 四、读写锁&普通互斥锁 4.1、读写锁 4.2、互斥锁 五、公平锁&非公平锁 六、可…

HBase(7):大量数据的计数统计

当HBase中数据量大时,可以使用HBase中提供的MapReduce程序来进行计数统计。语法如下: $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 表名 1 启动YARN集群 启动yarn集群 start-yarn.sh 启动history server mr-jobhistory-da…

计算机视觉:多通道卷积操作

本文重点 前面我们学习了对灰度图的卷积操作(二维图像),本节课程我们学习RGB 彩色图像的卷积操作(三维立体)也就是说现在我们不仅想检测灰度图像的特征,也想检测 RGB 彩色图像的特征。 彩色图片的表示方法 彩色图片通常使用RGB(Red、Green、Blue)三个颜色通道来表示…