`
mingren135
  • 浏览: 72562 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx学习

    博客分类:
  • web
 
阅读更多

一、网站、下载、文档、模块

http://nginx.com/

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/

http://nginx.org/cn/docs/

 

二、特性

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应用与提高》是一套深入探讨Nginx服务器的教程,涵盖了Nginx在各种场景下的应用和优化。这套资料的目的是帮助读者全面理解和掌握Nginx的强大功能,提升其在实际工作中的效能。 1. **第3章 ...

    Nginx学习笔记

    【Nginx学习笔记】 Nginx是一款由俄罗斯开发者Igor Sysoev设计的高性能、高并发的Web服务器和反向代理服务器。最初应用于俄罗斯知名网站www.rambler.ru,随后开源,采用类BSD许可,使得全球用户都能使用。Nginx以其...

    张宴版Nginx学习 以及配置

    **Nginx学习与配置详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效的性能和灵活的配置而备受青睐。本文将基于“张宴版Nginx学习 以及配置”这一主题,深入探讨Nginx的基础知识、配置技巧...

    nginx学习笔记.zip

    **Nginx学习笔记概述** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件代理服务器。它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态文件处理和SSL加密等场景。本学习...

    NGINX学习资源推荐

    ### NGINX学习资源推荐 #### 一、引言 随着互联网技术的不断发展与进步,高性能、高稳定性的Web服务器成为众多企业的首选。在众多Web服务器软件中,NGINX以其出色的性能表现和灵活的配置能力脱颖而出,成为全球...

    Nginx学习笔记.zip

    这个“Nginx学习笔记.zip”压缩包文件包含了一系列关于Nginx的教程资源,分别命名为“第1节课”到“第5节课”,暗示着一个逐步深入的学习过程。 在第一节课中,我们通常会了解Nginx的基本概念和安装步骤。Nginx的...

    Linux服务-nginx学习资料

    1,Nginx学习大纲:分基础篇;进阶篇;架构篇;模块篇几个阶段学习,每个阶段的内容个侧重点不同,如nignx指令,nginx配置;nginx服务集成;nginx集群,负载均衡,反向代理,Lua等等。 2,Nginx案例:学习Nginx离不...

    Nginx学习笔记.md

    这是我自学nginx的学习笔记,上传只是为了更好的督促自己学习,如果你也有同感,加入一起学习吧。

    5Nginx学习笔记1

    Nginx学习笔记1 Nginx是当前使用最广泛的Web服务器之一,它提供了强大的服务器功能和灵活的配置方式。本文档将介绍Nginx的基本概念、安装过程、配置方法和常见问题解决方案。 一、Nginx的基本概念 Nginx是一个...

    Nginx学习.txt

    Nginx学习 .

    Nginx学习.zip

    以上是Nginx学习的一些核心概念,深入理解并掌握这些知识点,将有助于构建高性能、高可用的Web服务架构。在实际操作中,我们还需要结合具体业务需求,灵活运用Nginx的配置选项,以实现最佳的服务器性能和用户体验。

    nginx学习笔记.docx

    ### Nginx 学习笔记知识点总结 #### 一、Nginx 简介及安装 **Nginx** 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,...

    nginx学习笔记及相关资料

    "nginx学习笔记及相关资料"这个压缩包中可能包含了关于Nginx的配置示例、教程文档、实战案例等,帮助学习者深入理解Nginx的工作原理,掌握配置和管理技巧,提升解决实际问题的能力。 总之,Nginx是一个强大且灵活的...

    nginx学习所需要的所有文件

    在“nginx学习所需要的所有文件”中,我们可以期待包含以下内容: 1. **源代码**:Nginx的源代码是学习其工作原理和内部机制的关键。通过阅读和理解源代码,开发者可以深入理解Nginx如何处理请求、如何进行负载均衡...

    nginx 学习笔记实用知识库分享知识分享

    "nginx 学习笔记实用知识库分享知识分享" 以下是从给定的文件中生成的相关知识点: Nginx 介绍 Nginx 是一个自由的、开源的、高性能的 HTTP 服务器和反向代理服务器,使用 C 语言编写,提供了高性能、可靠性和可...

    Nginx学习(一)简介

    **Nginx学习(一)简介** Nginx是一款高性能的Web服务器和反向代理服务器,广泛用于互联网上的高并发场景。它以其轻量级、高效能和稳定性著称,常用于网站静态资源的处理、动态请求的转发以及负载均衡等任务。 ## ...

    nginx学习电子书

    《Nginx学习电子书》是一本集合了多个Nginx相关书籍的资源,旨在帮助读者深入理解和掌握Nginx的使用、配置以及模块开发。这本书籍内容涵盖了从基础入门到高级进阶的各个方面,适合不同层次的IT从业者阅读。 1. **...

    nginx学习资料,只用于个人学习

    nginx学习资料,只用于个人学习

Global site tag (gtag.js) - Google Analytics