Nginx入门到精通1-nginx基础及环境搭建

目录

一、Nginx基础知识

1.1 Nginx简介

1.2 Nginx功能

 1.3 正向代理与反向代理

1.4 负载均衡

1.4.1 加权轮询

1.4.2 IP哈希

1.5 Nginx优点

1.6 Ngnix应用场景

二、Nginx安装与使用

2.1下载nginx

2.2 安装nginx

2.3 常用命令


一、Nginx基础知识

1.1 Nginx简介

一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

  • Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
  • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好

1.2 Nginx功能

单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。

Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。

Nginx入门到精通1-nginx基础及环境搭建_第1张图片

 在Nginx中有一种ip_hash策略,它可以获取到用户的真实IP,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。

 1.3 正向代理与反向代理

(1)正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。正向代理就是一个人发送一个请求直接就到达了目标的服务器

Nginx入门到精通1-nginx基础及环境搭建_第2张图片

(2)反向代理:反向代理与正向代理不同,正向代理是代理了客户端,而反向代理则是代理服务器端。在有多台服务器分布的情况下,为了能让客户端访问到的IP地址都为同一个网站,就需要使用反向代理。

Nginx入门到精通1-nginx基础及环境搭建_第3张图片

 反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。

1.4 负载均衡

由于不同服务器的配置不同,为了让性能高的服务器分配到更多的请求,便引入了负载均衡的概念。

Nginx的负载均衡方式可以有很多种,如加权轮询(默认)、IP哈希、url哈希等。

1.4.1 加权轮询

加权轮询,也就是通过给服务器添加各自的权重值,Nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多,反之越少:

Nginx入门到精通1-nginx基础及环境搭建_第4张图片

 上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次请求,权重为2的服务器会分配到2个请求,权重为1的服务器则会分配到1个请求。

1.4.2 IP哈希

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

通过哈希值和ip进行运算,得出一个哈希字符串,一个值。分发的时候进行判断请求之前是否和哈希绑定过。有的话则优先分配 匹配到对应哈希值的服务器上。

1.5 Nginx优点

(1)跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少;

(2)Nginx内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了,重新将请求提交到其他的节点上。

(3)处理响应快可实现http服务器、虚拟主机、方向代理、负载均衡Nginx配置简单,可以不暴露正式的服务器IP地址。

缺点:

动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力。

1.6 Ngnix应用场景

(1)web服务器

Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

(2)虚拟主机

可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。

(3)反向代理,

(4)负载均衡

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。nginz 中也可以配置安全管理、比如可以使用Nginx搭建

(5)API接口网关

对每个接口服务进行拦截。

二、Nginx安装与使用

2.1下载nginx

(1)下载

nginx: download,

下载版本 nginx-1.22.0.tar.gz

2.2 安装nginx

(1)解压安装包

tar -zxvf nginx-1.22.0.tar.gz

(2)进入解压后的目录,执行configure脚本

1

2

cd nginx-1.22.0/

./configure

./configure: error: the HTTP rewrite module requires the PCRE library.

缺少库

yum -y install pcre-devel openssl openssl-devel

离线安装可从该路径下获取,对应系统版本: 

Index of /7.3.1611/os/x86_64/Packages

 安装后:

error: the HTTP gzip module requires the zlib library.

解决方法:安装zlib-devel

 所缺少库的功能:

zlib: 实现gzip压缩解压功能

pcre:实现正则表达式解析功能;

openssl:实现 SSL/TLS功能(加密);

(3)使用make命令进行安装

1

make && make install

(4)安装完成后,使用whereis命令查找Nginx的安装位置 (默认安装在/user/local/目录下)

1

whereis nginx

显示如下:

nginx: /usr/local/nginx 

或者通过 ps -ef | grep nginx 查看是否安装成功。

(5)进入安装目录下的bin文件夹,启动nginx服务,访问服务器默认的80端口查看是否安装成功:

curl -vo /dev/null http://localhost/index.html

返回

 Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /index.html HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost
> Accept: */*
 

2.3 常用命令

nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

./usr/local/nginx/sbin/nginx #执行nginx ,以默认的配置文件

./usr/local/nginx/sbin/nginx -c xxx.conf #指定配置文件

./usr/local/nginx/sbin/nginx -c /opt/web #指定工作路径

-s #快速处理nginx命令

nginx -s stop       快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit       平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload     因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen     重新打开日志文件。
nginx -c filename   为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t            不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v            显示 nginx 的版本。
nginx -V            显示 nginx 的版本,编译器版本和配置参数

参考文献:

【1】https://www.jb51.net/article/205151.htm

【2】 nginx图片缓存服务器配置实战_小魚頭XD的博客-CSDN博客_nginx 图片缓存

【3】Nginx搭建图片服务器(静态资源缓存服务器).zip_nginx静态图片,nginx图片缓存-Web服务器文档类资源-CSDN下载 【4】搭建nginx图片服务器 - 显示账号 - 博客园

 【5】https://www.jb51.net/article/82200.htm

【6】Nginx 搭建图片缓存服务器 | Waver's Blog 

【7】Nginx 简易教程 - 静默虚空 - 博客园 

【8】Nginx搭建图片服务器_Mr@哈希大王的博客-CSDN博客

【9】一文概括6种负载均衡技术的实现方式!-51CTO.COM 

【10】nginx学习,看这一篇就够了! - 知乎 

你可能感兴趣的:(后端开发,nginx,服务器,负载均衡)