Nginx笔记

1 是什么?

(来自百度百科)

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

关于Nginx的更多介绍

2 相关概念

2.1 反向代理

 

2.2 负载均衡

 

2.3 动静分离

 

3 安装

3.1 准备

centos7、pcre-8.37.tar.gz、nginx-1.12.2.tar.gz

3.2 安装pcre

进入/opt目录,在该目录下解压pcre-8.37.tar.gz,解压命令为:tar -zxvf pcre-8.37.tar.gz;

进入pcre-8.37目录,依次执行如下命令:

./configure;
make && make install;
当安装成功后,执行如下命令查看版本;
pcre-config --version;

3.3 安装zlib、openssl

执行如下命令即可:

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

3.4 安装Nginx

安装Nginx的步骤与3.1的步骤一致,解压,进入Nginx目录,执行如下两个命令:

./configure;
make && make install;

当命令执行成功后,进入/usr/local目录,可以在该目录下看到一个nginx目录。

进入/usr/local/nginx/sbin目录,执行命令:./nginx;

Nginx笔记_第1张图片

可以看到存在Nginx的进程存在了。

4 Nginx常用命令以及配置文件

需要进入Nginx的安装目录对应的sbin目录(/usr/local/nginx/sbin)下执行Nginx的常用命令。

4.1 启动命令

在/usr/local/nginx/sbin 目录下执行 ./nginx

4.2 关闭命令

在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop

4.3 重新加载命令

在/usr/local/nginx/sbin 目录下执行 ./nginx -s reload

4.4 查看版本

./nginx -v;

4.5 配置文件

nginx 安装目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改。修改之前记得备份一下nginx.conf,比如备份为:nginx.conf.bk。

Nginx笔记_第2张图片

Nginx笔记_第3张图片
4.5.1 第一部分:全局块 

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。比如上面第一行配置的:

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约

4.5.2 第二部分:events 块 

比如上面的配置:

 events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024.这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

4.5.3 第三部分:http 块 

Nginx笔记_第4张图片

Nginx笔记_第5张图片

这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块。
①、http 全局块
 http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
②、server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
a)全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
b)location 块

 一个 server 块可以配置多个 location 块。这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

 

你可能感兴趣的:(Nginx笔记)