初识nginx

一、nginx的常用概念

  • 1.nginx简介
    Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

  • 2.nginx中的反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
在这里插入图片描述

  • 3.负载均衡

客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHqX8UAa-1637571315995)(F1BAC275A38049EDAA9EF7EDAC91FA16)]

这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?
我们首先想到的可能是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能够满足需求的。那么怎么办呢?
上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sqqfSTPN-1637571315999)(8B78B32D4065450EA031A66AC13DE0B9)]

  • 4.动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WyEImKEy-1637571316002)(C594F649661545D1876CE55D895B8BBB)]

2.nginx的安装

  • 1.安装pcre依赖
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
  • 2.解压压缩文件
    使用命令 tar -xvf pcre-8.37.tar.gz

第三步进入到prce文件下./configure 完成后,回到 pcre 目录下执行 make,最后执行 make install,合并命令 make&&make install

看pcre依赖是否安装成功:pcre-config --version

  • 3.安装 openssl 、zlib 、 gcc 依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  • 4.安装 nginx
    下载
wget http://nginx.org/download/nginx-1.12.2.tar.gz 

解压
tar -xvf nginx-1.12.2.tar.gz 

检查
./configure 

安装
 make&&make install
  • 使用命令解压

  • ./configure

  • make && make install

进入目录 /usr/local/nginx/sbin/nginx 启动服务

安装后,不能访问的,需要对防火墙进行设置

也可以直接关闭防火墙,并防止自启(在练习模式中)

//关闭防火墙&&防火墙自启

systemctl stop firewalld && systemctl disable firewalld

//安装Iptables管理工具&&启动Iptables&&设为Iptables开机自启&&清空Iptables规则&&保存Iptables默认规则

yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save

查看开放的端口

firewall-cmd --list-all

设置开放端口号

firewall-cmd --add-service=http –permanent

firewall-cmd --add-port=80/tcp --permanent

设置之后需要重启防火墙

firewall-cmd --reload

二、Nginx常用命令

进入 nginx 目录中: cd /usr/local/nginx/sbin

1.查看 nginx 版本号
./nginx -v
2.启动 nginx
./nginx

查看是否启动成功:ps -ef|grep nginx
3.停止 nginx
./nginx -s stop
4.重新加载 nginx
./nginx -s reload

三、nginx.conf配置文件

1、位置
vim /usr/local/nginx/conf/nginx.conf
2.配置文件中的内容(包含三部分)

(1)全局块:配置服务器整体运行的配置指令

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配

置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以

及配置文件的引入等。

比如上面第一行配置的:

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是

会受到硬件、软件等设备的制约

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bp9IdUyD-1637571316005)(EF502D74E04F4B089C57BEA7A6A6DCB8)]

(2)events 块:影响 Nginx 服务器与用户的网络连接

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process

下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word

process 可以同时支持的最大连接数等。

上述例子就表示每个 work process 支持的最大连接数为 1024.

这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DcDAkuXn-1637571316007)(C30379F16CB94DFB82EDF7C9AA0E1CBA)]

(3)http 块

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

需要注意的是:http 块也可以包括 http 全局块、server 块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2A3PGC6k-1637571316009)(986CDECDC003496B95424932EAD339E2)]

①、http 全局块

http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Puw2c3Rc-1637571316011)(B2D3A3B152CD457FB673891A9EA74EED)]

②、server 块

这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了

节省互联网服务器硬件成本。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VUiMJH6k-1637571316014)(7D0FEEDE813E4798B203D99DB5E0F33F)]

全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

location 块
一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称

(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓

存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抬头看天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值