目录


1、Nginx概述

 2、Nginx四大应用场景

2.1HTTP服务器

2.2反向代理

2.3负载均衡

 2.4动静分离

 3、Nginx特性

3.1单机架构

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

4、环境准备

 5、Nginx安装

5.1Nginx下载

5.2生成makefile

 6、Nginx目录结构

6.1目录详解


1、Nginx概述

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

 2、Nginx四大应用场景

2.1HTTP服务器

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

windows服务安装nginx nginx安装为服务_nginx

2.2反向代理

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

 

windows服务安装nginx nginx安装为服务_nginx_02

2.3负载均衡

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

windows服务安装nginx nginx安装为服务_Nginx_03

 2.4动静分离

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

windows服务安装nginx nginx安装为服务_服务器_04

 3、Nginx特性

3.1单机架构

 

windows服务安装nginx nginx安装为服务_Nginx_05

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

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

 

windows服务安装nginx nginx安装为服务_windows服务安装nginx_06

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

Nginx特点:

  1. 它可以高并发连接,官方测试能够支撑5万并发连接,在实际生产环境中可以支撑2到4万并发连接。
  2. 内存消耗少
  3. 购买F5 BIG-IP ,NetScaler等硬件负载均衡交换机。而Nginx为开源软件,可以免费试用,并且可用于商业用途。
  4. 内置的健康检查功能:如果Nginx proxy后端的某台服务器宕机了,不会影响前端访问。
  5. 节省带宽,支持gzip压缩。
  6. 稳定性高:用于反向代理(负载均衡),宕机的概率微乎其微。
  7. 支持热部署。在不间断服务的情况下,对软件版本升级

4、环境准备

安装环境命令:

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协议,并提供丰富的应用程序供测试或其它目的使用。

 5、Nginx安装

5.1Nginx下载

官网:http://Nginx.org

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

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

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

Legacy Version:老版本。

下载压缩包:

# wget http://nginx.org/download/nginx-1.20.2.tar.gz

解压到当前目录下:

# tar -zxvf nginx-1.20.2.tar.gz

将文件移动到/usr/local目录下:

# mv nginx-1.20.2 /usr/local

Nginx目录的作用:

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

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

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

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

html:存放 Nginx 欢迎页面

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

src:存放 Nginx 源码

5.2生成makefile

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

# 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访问日志文件

  • 安装编译参数: 
编译选项作用--prefix=/etc/Nginx主目录--sbin-path=/usr/sbin/Nginx执行命令--modules-path=/usr/lib64/Nginx/modulesNginx模块--conf-path=/etc/Nginx/Nginx.confNginx配置文件--error-log-path=/var/log/Nginx/error.log错误日志--http-log-path=/var/log/Nginx/access.log访问日志--pid-path=/var/run/Nginx.pidNginx启动的pid--lock-path=/var/run/Nginx.lockNginx的锁--http-client-body-temp-path=/var/cache/Nginx/client_temp执行对应模块时,Nginx锁保留的临时性文件--http-proxy-temp-path=/var/cache/Nginx/proxy_temp--http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp--http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp--http-scgi-temp-path=/var/cache/Nginx/scgi_temp--user=Nginx设定Nginx进程启动的用户--group=Nginx设定Nginx进程启动的用户组--with-cc-opt=parameters设置额外的参数将被添加到CFLAGS变量--with-ld-opt=parameters设置附加的参数,连接系统库
  •  配置参数
# mkdir -p /var/temp/nginx/client 
 # ./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


mkdir -p /var/temp/nginx/client 命令使用递归方式创建/var/temp/nginx/client目录
  • 编译安装

#make && make install

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

 6、Nginx目录结构

6.1目录详解

conf目录

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

html目录

Nginx的默认站点目录。

logs目录

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

sbin目录

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