一、网站、下载、文档、模块
http://nginx.org/en/download.html
http://wiki.nginx.org/3rdPartyModules
https://github.com/search?q=nginx&type=&ref=simplesearch
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
二、特性
1)HTTP服务器
2)HTTP反向代理服务器
3)MAIL反向代理服务器
4)性能非常高
5)资源占用少(CPU、内存)
三、安装
1)查看编译选项
./configure --help
如:
--prefix=PATH set installation prefix
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.10
2)步骤
首先,./configure:执行后可能报错,提示无xxx库,需要先安装
如:gzip 模块需要 zlib 库 ,rewrite 模块需要 pcre 库 ,ssl 功能需要 openssl 库
sudo apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev
然后,make&make install
安装成功后 /usr/local/nginx 目录下有四个子目录分别是:conf、html、logs、sbin
./nginx启动,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功
四、使用
1)./nginx
2)./nginx -s stop 直接退出
3)./nginx –s quit 优雅退出
4)./nginx -s reload 优雅装载新配置
优点:
1. 更新平滑,不中断服务,不丢失请求
2. 新配置错误时,不会替换先前的工作进程
5)./nginx –t 检查配置的正确性
6)./nginx –v 查看基本信息
7)./nginx -V 查看详细编译信息,对调试有用
五、配置文件
worker_processes 2; user admin admin; error_log logs/error.log warn; event { use epoll; worker_connections 20480; } http { server { listen 80; server_name www.taobao.com; location / { root html; index index.html index.htm; } } }
说明:
0)最外层是main块,父层的配置会被下层继承
1)event块:定义nginx的事件模型,不可缺
2)http块:整个http服务器的必要块
3)server块:定义虚拟主机
4)location块:定义uri规则
5)if块:根据条件进行跳转
六、nginx处理流程
---解析请求与查找配置---
1)接收数据 2)分析请求 3)找到VS 4)找到LOCATION
---产生内容模块---
1)执行各阶段处理模块 2)产生回复内容
---过滤阶段---
1)过滤回复头 2)过滤回复主体
七、查找域名
nginx以名字查找虚拟主机时,如果名字可以匹配多于一个主机名定义,比如同时匹配了通配符的名字和正则表达式的名字,那么nginx按照下面的优先级别进行查找,并选中第一个>匹配的虚拟主机:
1)确切的名字;
2)最长的以星号起始的通配符名字:*.example.org;“*.example.org”不仅匹配www.example.org,也匹配www.sub.example.org。有一种形如“.example.org”的特殊通配符,它可以既匹配确切的名字“example.org”,又可以匹配一般的通配符名字“*.example.org”。
3)最长的以星号结束的通配符名字:mail.*;
4)第一个匹配的正则表达式名字(按在配置文件中出现的顺序)。nginx使用的正则表达式兼容PCRE。为了使用正则表达式,虚拟主机名必须以波浪线“~”起始。
server_name ~^www\d+\.example\.net$;否则该名字会被认为是个确切的名字
--优化--
确切名字和通配符名字存储在哈希表中。哈希表和监听端口关联。哈希表的尺寸在配置阶段进行了优化,可以以最小的CPU缓存命中失败来找到名字。nginx首先搜索确切名字的哈希表,如果没有找到,搜索以星号起始的通配符名字的哈希表,如果还是没有找到,继续搜索以星号结束的通配符名字的哈希表。因为名字是按照域名的节来搜索的,所以搜索通配符名字的哈希表比搜索确切名字的哈希表慢。
**注意特殊的通配符名字“.example.org”存储在通配符名字的哈希表中,而不在确切名字的哈希表中。正则表达式是一个一个串行的测试,所以是最慢的,而且不可扩展。鉴于以上原因,请尽可能使用确切的名字。
**举个例子,如果使用example.org和www.example.org来访问服务器是最频繁的,那么将它们明确的定义出来就更为有效:
server { listen 80; server_name example.org www.example.org *.example.org; ... }
下面这种方法相比更简单,但是效率也更低:
server { listen 80; server_name .example.org; ... }
八、location
location = / { #1 } location ^~ /images/ { #2 } location ~* \.(gif|jpg|jpeg)$ { #3 } location / { #4 }
1)= : 精确匹配
2)^~ :前缀匹配
3)~ :正则匹配
4)没有标识符,最后匹配
相关推荐
nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...
《Nginx学习丛书:Nginx应用与提高》是一套深入探讨Nginx服务器的教程,涵盖了Nginx在各种场景下的应用和优化。这套资料的目的是帮助读者全面理解和掌握Nginx的强大功能,提升其在实际工作中的效能。 1. **第3章 ...
【Nginx学习笔记】 Nginx是一款由俄罗斯开发者Igor Sysoev设计的高性能、高并发的Web服务器和反向代理服务器。最初应用于俄罗斯知名网站www.rambler.ru,随后开源,采用类BSD许可,使得全球用户都能使用。Nginx以其...
**Nginx学习与配置详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效的性能和灵活的配置而备受青睐。本文将基于“张宴版Nginx学习 以及配置”这一主题,深入探讨Nginx的基础知识、配置技巧...
**Nginx学习笔记概述** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件代理服务器。它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态文件处理和SSL加密等场景。本学习...
### NGINX学习资源推荐 #### 一、引言 随着互联网技术的不断发展与进步,高性能、高稳定性的Web服务器成为众多企业的首选。在众多Web服务器软件中,NGINX以其出色的性能表现和灵活的配置能力脱颖而出,成为全球...
这个“Nginx学习笔记.zip”压缩包文件包含了一系列关于Nginx的教程资源,分别命名为“第1节课”到“第5节课”,暗示着一个逐步深入的学习过程。 在第一节课中,我们通常会了解Nginx的基本概念和安装步骤。Nginx的...
1,Nginx学习大纲:分基础篇;进阶篇;架构篇;模块篇几个阶段学习,每个阶段的内容个侧重点不同,如nignx指令,nginx配置;nginx服务集成;nginx集群,负载均衡,反向代理,Lua等等。 2,Nginx案例:学习Nginx离不...
这是我自学nginx的学习笔记,上传只是为了更好的督促自己学习,如果你也有同感,加入一起学习吧。
Nginx学习笔记1 Nginx是当前使用最广泛的Web服务器之一,它提供了强大的服务器功能和灵活的配置方式。本文档将介绍Nginx的基本概念、安装过程、配置方法和常见问题解决方案。 一、Nginx的基本概念 Nginx是一个...
Nginx学习 .
以上是Nginx学习的一些核心概念,深入理解并掌握这些知识点,将有助于构建高性能、高可用的Web服务架构。在实际操作中,我们还需要结合具体业务需求,灵活运用Nginx的配置选项,以实现最佳的服务器性能和用户体验。
### Nginx 学习笔记知识点总结 #### 一、Nginx 简介及安装 **Nginx** 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,...
"nginx学习笔记及相关资料"这个压缩包中可能包含了关于Nginx的配置示例、教程文档、实战案例等,帮助学习者深入理解Nginx的工作原理,掌握配置和管理技巧,提升解决实际问题的能力。 总之,Nginx是一个强大且灵活的...
在“nginx学习所需要的所有文件”中,我们可以期待包含以下内容: 1. **源代码**:Nginx的源代码是学习其工作原理和内部机制的关键。通过阅读和理解源代码,开发者可以深入理解Nginx如何处理请求、如何进行负载均衡...
"nginx 学习笔记实用知识库分享知识分享" 以下是从给定的文件中生成的相关知识点: Nginx 介绍 Nginx 是一个自由的、开源的、高性能的 HTTP 服务器和反向代理服务器,使用 C 语言编写,提供了高性能、可靠性和可...
**Nginx学习(一)简介** Nginx是一款高性能的Web服务器和反向代理服务器,广泛用于互联网上的高并发场景。它以其轻量级、高效能和稳定性著称,常用于网站静态资源的处理、动态请求的转发以及负载均衡等任务。 ## ...
《Nginx学习电子书》是一本集合了多个Nginx相关书籍的资源,旨在帮助读者深入理解和掌握Nginx的使用、配置以及模块开发。这本书籍内容涵盖了从基础入门到高级进阶的各个方面,适合不同层次的IT从业者阅读。 1. **...
nginx学习资料,只用于个人学习