Nginx配置与应用详解

前言linux

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

基础特性web

基本功能算法

静态资源的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模块

邮件模块

第三方扩展模块

基本配置

虚拟主机

12df0001a964bffed3aa

请点击此处输入图片描述

虚拟主机基本配置完成,固然虚拟主机里也能够有不少参数的,下文会说起到

访问控制

基于用户

认证文件由htpasswd命令建立

128200046e8650d84e32

请点击此处输入图片描述

访问测试

12df0001a96367cf155b

请点击此处输入图片描述

基于IP

12db00005e5dcfba6477

请点击此处输入图片描述

重启服务后访问测试

12da000035bcf48345a5

请点击此处输入图片描述

压缩功能

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

端的速度。一般编译nginx默认会附带gzip压缩的功能,所以,能够直接启用之。

12da000035bea646c554

请点击此处输入图片描述

未压缩访问测试

12da000035bf6603a520

请点击此处输入图片描述

12db00005e5e9be9d010

请点击此处输入图片描述

重启服务,压缩后测试

12df0001a966683aeb46

请点击此处输入图片描述

压缩成功

防盗链

(1) 定义合规的引用

128200046e875efca740

请点击此处输入图片描述

(2) 拒毫不合规的引用

12df0001a96515daade9

请点击此处输入图片描述

12df0001a96845f9ad89

请点击此处输入图片描述

12df0001a967f02ed199

请点击此处输入图片描述

访问测试

128200046e88c72c6ce4

请点击此处输入图片描述

12df0001a9690b1f986c

请点击此处输入图片描述

反向代理

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

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

12da000035c29de11ad8

请点击此处输入图片描述

128200046e899be69e8b

请点击此处输入图片描述

缓存

nginx作为反向代理时,可以未来自上游服务器的响应缓存至本地,并在后续的客户端请求一样内容时

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

12df0001a96ad2fa246e

请点击此处输入图片描述

12df0001a96be3bb9d6a

请点击此处输入图片描述

缓存前请求时间

12de00006686890223ad

请点击此处输入图片描述

缓存后请求时间

12da000035c454bba663

请点击此处输入图片描述

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

128200046e8ae78ae5bd

请点击此处输入图片描述

负载均衡

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

12db00005e5f14ceba92

请点击此处输入图片描述

12de0000668855124a3c

请点击此处输入图片描述

12da000035c325e114e8

请点击此处输入图片描述

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

The end

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


来源:马哥教育

官方微信:magedu-linux

相关文章
相关标签/搜索