前言

Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用服务器。本文带来的是Nginx配置与应用详解。

基础特性

基本功能

静态资源的web服务器,能缓存打开的文件描述符

反向代理服务器,缓存、负载均衡

支持FastCGI

模块化,非DSO机制,过滤器gzip,SSI和图像大小调整等

支持SSL

扩展功能

基于名称和IP做虚拟主机

支持keepalive

支持平滑配置更新或程序版本升级

定制访问日志,支持使用日志缓存以提高性能

支持url rewrite

支持路径别名

支持基于IP及用户的认证

支持速率限制,并发限制等

基本架构

一个master, 生成一个或多个worker

事件驱动:kqueue, epoll, /dev/poll

消息通知:select, poll, rt signals

支持sendfile, sendfile64

文件AIO

支持mmap

模块类别

核心模块

标准http模块

可选的http模块

邮件模块

第三方扩展模块

基本配置

虚拟主机

Nginx配置与应用详解_第1张图片

请点击此处输入图片描述

虚拟主机基本配置完成,当然虚拟主机里也可以有很多参数的,下文会提及到

访问控制

基于用户

认证文件由htpasswd命令创建

Nginx配置与应用详解_第2张图片

请点击此处输入图片描述

访问测试

Nginx配置与应用详解_第3张图片

请点击此处输入图片描述

基于IP

Nginx配置与应用详解_第4张图片

请点击此处输入图片描述

重启服务后访问测试

Nginx配置与应用详解_第5张图片

请点击此处输入图片描述

压缩功能

nginx将响应报文发送至客户端之前可以启用压缩功能,这能够有效地节约带宽,并提高响应至客户

端的速度。通常编译nginx默认会附带gzip压缩的功能,因此,可以直接启用之。

12da000035bea646c554

请点击此处输入图片描述

未压缩访问测试

Nginx配置与应用详解_第6张图片

请点击此处输入图片描述

Nginx配置与应用详解_第7张图片

请点击此处输入图片描述

重启服务,压缩后测试

Nginx配置与应用详解_第8张图片

请点击此处输入图片描述

压缩成功

防盗链

(1) 定义合规的引用

128200046e875efca740

请点击此处输入图片描述

(2) 拒绝不合规的引用

12df0001a96515daade9

请点击此处输入图片描述

Nginx配置与应用详解_第9张图片

请点击此处输入图片描述

Nginx配置与应用详解_第10张图片

请点击此处输入图片描述

访问测试

Nginx配置与应用详解_第11张图片

请点击此处输入图片描述

Nginx配置与应用详解_第12张图片

请点击此处输入图片描述

反向代理

Nginx通过proxy模块实现反向代理功能。在作为web反向代理服务器时,nginx负责接收客户请求,并能够根据URI、客户端参数或其它的处理逻辑将用户请求调度至上游服务器上(upstream server)。

nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够将location定义的某URI代理至指定的上游服务器(组)上。如下面的示例中,location的/uri将被替换为上游服务器上的/newuri。

Nginx配置与应用详解_第13张图片

请点击此处输入图片描述

Nginx配置与应用详解_第14张图片

请点击此处输入图片描述

缓存

nginx做为反向代理时,能够将来自上游服务器的响应缓存至本地,并在后续的客户端请求同样内容时

直接从本地构造响应报文。

Nginx配置与应用详解_第15张图片

请点击此处输入图片描述

Nginx配置与应用详解_第16张图片

请点击此处输入图片描述

缓存前请求时间

Nginx配置与应用详解_第17张图片

请点击此处输入图片描述

缓存后请求时间

Nginx配置与应用详解_第18张图片

请点击此处输入图片描述

此时缓存目录应该有缓存文件生成

128200046e8ae78ae5bd

请点击此处输入图片描述

负载均衡

nginx可利用自身的upstream模块实现,upstream模块的负载均衡算法主要有三种,轮调(round-robin)、ip哈希(ip_hash)和最少连接(least_conn)三种。

Nginx配置与应用详解_第19张图片

请点击此处输入图片描述

Nginx配置与应用详解_第20张图片

请点击此处输入图片描述

Nginx配置与应用详解_第21张图片

请点击此处输入图片描述

如此便可实现简单的负载均衡功能

The end

好了,有关nginx的基础配置及应用就先说到这里了,第一次接触nginx,写的比较乱,敬请谅解。


来源:马哥教育

官方微信:magedu-linux