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

 

目录

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

猜你喜欢

转载自blog.csdn.net/m0_58719994/article/details/131465260