目录

一.Nginx简介

1.1  Nginx的基础

1.2 Nginx和Apache的区别

1.3  Nginx和Apache的优缺点

1.3 编译安装nginx服务

1.3.1 关闭防火墙

 1.3.2 安装依赖包

1.3.3 创建运行用户、组

1.3.4 将安装nginx所需的软件包传到/opt目录下解压

 1.3.5 编译安装Nginx

​1.3.6 优化路径

 1.3.7 检查,启动,重启,停止Nginx服务

1.3.8  添加Nginx系统服务

 二.认识Nginx服务的主配置文件 nginx.conf

2.1  配置文件包含的内容

 2.1 全局配置

 2.2 I/O事件配置

 2.3 HTTP设置

四.访问状态统计配置

4.1 查看安装模块

2、修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置  ​编辑

4.3 重启服务,访问测试​编辑

 五. 基于授权的访问控制

 六. 基于客户端的访问控制

七. 基于域名的Nginx虚拟机主机

 八. 基于IP的Nginx虚拟主机

 九. 基于端口的Nginx虚拟主机

一.Nginx简介

1.1  Nginx的基础

一款高新能、轻量级Web服务软件稳定性高系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000~50 000个并发请求。

1.2 Nginx和Apache的区别

Nginx是一个甚于事件的Web服务器,Apache是一个基于流程的服务器; Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求; Nginx可以实现无缓存的反向代理加速,提高网站运行速度; Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级; Nginx高度模块化,编写模块相对简单,且组件比Apache少; Nginx是异步进程,多个连接可以对应一个进程;Apache是同步多进程,一个连接对应一个进程; Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件; Nginx配置简洁,Apache配置复杂。                                                                                            Nginx对于静态文件处理具有更高效率,Apache相对一般; Nginx在反向代理场景具有明显优势,Apache相对一般。

1.3  Nginx和Apache的优缺点

nginx相对于apache的优点                                                                                                             轻量级,同样起web服务,比Apache占用更少的内存及资源。 高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。 高度模块化的设计。 编写模块相对简。 社区活跃,各种高性能模块出品速度

apache相对于nginx的优点∶                                                                                                      rewrite比nginx的rewrite强大 模块多,基本想到的都可以找到 少bug, Nginx的bug相对较超稳定

1.3 编译安装nginx服务

1.3.1 关闭防火墙

 1.3.2 安装依赖包

#nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。

1.3.3 创建运行用户、组

Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限  

1.3.4 将安装nginx所需的软件包传到/opt目录下解压

 1.3.5 编译安装Nginx

配置

 编译安装

 1.3.6 优化路径

创建软连接,方便系统识别

 1.3.7 检查,启动,重启,停止Nginx服务

开启:

关闭方法一:

1.3.8  添加Nginx系统服务

 

 二.认识Nginx服务的主配置文件 nginx.conf

2.1  配置文件包含的内容

全局块:全局配置,对全局生效; events块:配置影响Nginx服务器与用户的网络连接; http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置; server块:配置虚拟主机的相关参数,一个http块中可以有多个server块; location块:用于配置匹配的uri; upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。

命令: vim /usr/local/nginx/conf/nginx.conf 

 2.1 全局配置

 #user nobody;                     #运行用户,若编译时未指定则默认为 nobody worker_processes 4;             #工作进程数量,可配置成服务器内核数 * 2,如果网站访问量不大,一般设为1就够用了 #error_log logs/error.log;         #错误日志文件的位置 #pid logs/nginx.pid;             #PID 文件的位置

 2.2 I/O事件配置

允许 Nginx 正常提供服务的连接数(并发量):工作进程数为 1,每个进程处理 1024 个连接,则为cpu核数*连接数(1*1024=1024)

1.   如提高每个进程的连接数还需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开          的最大文件数。 2.   在Linux平台.上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进       程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个           socket句柄同时也是一个文件句柄)。 3. 可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

epoll(socket描述符)是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

内核优化: vim /etc/security/limits.conf 

 2.3 HTTP设置

 

日志格式设定: 

 root(根)

第一种情况

 如果访问http://192.168.18.6/my/test/test.html 访问为:/usr/local/nginx/html/my/test/test.html

 第二种情况

 如果访问http://192.168.18.6/my/test/test.html 访问为:/usr/local/nginx/html/my/test/test.html 

四.访问状态统计配置

4.1 查看安装模块

1. 查看当前nginx版本号    nginx -v                                                                                                  2.  当前nginx版本号还能够看到安装时配置的参数 nginx -V   3.  先使用命令/usr/local/nginx/sbin/nginx -V 查看已安装的 Nginx 是否包HTTP_STUB_STATUS            模块,cat /opt/nginx-1.12.0/auto/options | grep YES #查看nginx已安装的所有模块

2、修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置  

4.3 重启服务,访问测试

浏览器访问http://自己IP/status 

Active connections :表示当前的活动连接数; server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、 已处理的请求数。

 可以curl -Ls http://192.168.52.110/status结合awk来写shell脚本,如果链接数过高报警

 五. 基于授权的访问控制

5.1 生成用户密码认证文件

  

5.2 修改配置文件相对应目录,添加认证配置项 

 5.3 重启服务,访问测试

 输入网址http://192.168.52.110/test/test.html

 六. 基于客户端的访问控制

Nginx 基于客户端的访问控制规则如下:

deny IP/IP 段:拒绝某个IP或I 段的客户端访问。allow IP/IP 段:允许某个IP或IP段的客户端访问。规则从上往下执行,如匹配则停止,不再往下匹配

  重启服务,访问测试

七. 基于域名的Nginx虚拟机主机

虚拟主机有三种:基于域名,IP,端口

7.1 为虚拟机提供域名解析

7.2  为虚拟主机准备网页文档

7.3 修改Nginx配置文件

 重启服务,输入域名进行测试

 

 八. 基于IP的Nginx虚拟主机

8.1  设置虚拟IP

8.2  编辑配置文件 

8.3  重启测试 

 

 九. 基于端口的Nginx虚拟主机

9.1 修改配置文件

 9.2 重启测试

 

查看原文