`

nginx配置 笔记

 
阅读更多

   nginx本身拥有大量官方发布的模块和第三方模块,这些已有的模块可以帮助我们实现web服务器上很多的功能。使用这些模块时也只需要增加或修改一些配置项即可。

   总所周知,nginx是一个支持多进程的web服务器

 

  •    location 配置:

     正则location:

              ~和~* 是在使用正则表达式时的前缀,~ 表示区分大小写 ~* 不区分大小写

    普通location:

              包括带有前缀(=、^~、@)和无任何前缀的location

              

   nginx的匹配规则是先匹配 普通的location 再匹配 正则location ,而普通location内部匹配原则是 匹配最贴近的那个 简单一点儿就是匹配长度较长的那个。

 需要注意的是:当普通location匹配完成之后,nginx会继续匹配正则location,当匹配当第一个正则location就停止匹配,所以正则location之间是按照物理的定义顺序进行匹配的。

如果正则location匹配上了 就会覆盖刚才匹配的普通location,但是若未匹配上,就使用之前匹配上的普通location。

  但是如果我们不想匹配完普通location 再继续匹配正则location 怎么办呢?

  这时需要我们加上前缀 ^~ 或 =,它俩是有区别的:^~ 阻止了正则location的匹配,还支持最大匹配

  而= 阻止了正则location 必须严格精确匹配

 

综上所述,我们可以得到一个结论:正则匹配会让步 普通的精确匹配 但是会覆盖最大前缀的普通匹配

 

 此外,除了普通location和正则location外 ,还有一种“@”位前缀的location,@是用来定义named location,这种location不是处理普通请求的,而是用来专门处理内部重定向的(internally redirected) 也即 内部的forward动作。

  •   ngx_http_core_module模块常见变量

  ngx_http_core_module 模块在处理请求时,会有大量的变量。这些变量既可以被访问日志记录,又可以被其他nginx模块使用。

   $arg_PARAMETER    http请求中某个参数的值,例如/showcase?user=123 可以通过$arg_user 来取得123这个值。

   $args HTTP            http请求中的完整参数,例如/index.html?token=123&notice=456 中$args 表示“token=123&notice=456”

   $binary_remote_addr 二进制格式的客户端地址。例如 \xOA\xEOB\xOE

   $body_bytes_sent 表示向客户端发送的http响应中,包体部分的字节数

   $content_length 表示客户端请求头部中的Content-Length字段

   $content_type    表示客户端请求头部中的Content-type字段

   $cookie_COOKIE 表示客户端请求头部中的cookie字段

   $document_root  表示当前请求所使用的root配置项的值

   $uri 表示当前请求的URI不带任何参数

   $document_uri 与$uri含义相同

   $request_uri 表示客户端发来的原始请求URI,带完整的参数。$uri和$document_uri不一定是用户发来的原始请求,在内部重定向后可能是重定向后的URI,而$request_uri永远不会改变,始终是客户端的原始URI

   $host    表示客户端请求头中的Host字段。如果host字段不存在则以实际处理的server(虚拟主机)名称来代替。如果Host字段带有端口,如IP:PORT,那么host是去掉端口的IP值,$host是全小写的。这些特性与http_HEADER中的http_host不同,http_host只取出Host头部对应的值。

   $hostname  表示nginx所在机器的名称,与gethostbyname调用返回的值相同

   $http_HEADER 表示当前请求中相应的头部的值。例如,Host在头部对应的值 用$http_host表示

   $send_http_HEADER 表示返回客户端的HTTP响应中相应的头部值。HEADER名称全小写。例如,                     $send_http_content_length 表示返回响应Content-Type头部对应的值。

   $is_args   表示请求中的URI是否带参数,如果带参数,$is_args的值为?,如果不带参数,则是空字符串。

   $limit_rate   表示当前的限速是多少,0表示无限速。

   $nginx_version 表示当前nginx的版本号

   $query_string 请求URI中的参数,与$args相同,但是$query_string是只读的

   $remote_addr  表示客户端地址

   $remote_port 表示客户端连接使用的端口号

   $remote_user 表示使用Auth Basic Module时定义的用户名

   $request_filename 表示用户请求中的URI进过root或alias转换后的文件路径

   $request_body 表示HTTP请求中的包体,该参数只在proxy_pass或fastcgi_pass中有意义。

   $request_body_file  表示HTTP请求包体存储的临时文件名

   $request_completion  当请求全部完成时,其值为“ok”。若没有完成,就要返回客户端,则其值为空字符串;或者在断点续传等情况下使用HTTP range访问的并不是文件的最后一块,那么其值也是空字符串

   $request_method 表示HTTP请求的方法名,如GET、PUT、POST等

   $scheme 表示HTTP scheme,如在请求https://www.sonicery-d.com/中表示https

   $server_addr  表示服务器地址

   $server_name 表示服务器名称

   $server_port   表示服务器端口

   $server_protocol  表示服务器向客户端发送响应使用的协议,如 HTTP/1.0或HTTP/1.1

 

  待补充。。。

分享到:
评论

相关推荐

    Nginx学习笔记

    Nginx学习笔记 Nginx 是一个流行的开源 Web 服务器软件,能够处理高并发请求,常用于搭建高性能的 Web 服务器。本文将对 Nginx 的安装、配置、日志管理等方面进行详细的介绍。 一、Nginx 的安装 Nginx 的安装可以...

    Nginx学习笔记.zip

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

    nginx高级配置笔记

    "Nginx高级配置笔记" Nginx是一款流行的开源Web服务器软件,广泛应用于Web开发和生产环境中。以下是Nginx高级配置笔记的要点总结: 扩展式负载均衡 Nginx提供了多种方式来实现扩展式负载均衡,包括: 1. 单机...

    nginx学习笔记.zip

    **Nginx学习笔记概述** ...它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态...在实际应用中,还需要结合具体业务需求,灵活调整和优化Nginx配置,以实现最佳的系统性能和服务质量。

    nginx课程笔记文件.zip

    里面有关于nginx所有的配置具体的介绍,其中有nginx怎样配置负载均衡,图片服务器,资源压缩,黑白名单限制,websocket反向代理,rewrite重写规则,服务器缓存设置,ssl证书配置,keepalive部署nginx集群,openResty...

    nginx学习配置笔记_带书签

    学习的nginx配置信息,包括反向代理,负载均衡,和ip过滤。

    nginx笔记笔记笔记

    - **events 块**:配置 Nginx 与客户端的网络连接,如最大连接数 `worker_connections`。 - **http 块**:配置反向代理、负载均衡等高级功能,包括多个 server 块。 **6. Nginx 配置示例** - **反向代理**:通过 `...

    Nginx课件和笔记.rar

    08.nginx配置实例(反向代理准备工作) 09.nginx配置实例(反向代理实例一) 10.nginx配置实例(反向代理实例二) 11.nginx配置实例(负载均衡) 12.nginx配置实例(动静分离准备工作) 13.nginx配置实例(动静...

    5Nginx学习笔记1

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

    nginx学习笔记

    ### Nginx 学习笔记 #### Nginx 集群与分布式服务架构 在当前互联网技术高速发展的背景下,单台服务器已经无法满足日益增长的业务需求。为了解决这一问题,分布式服务架构应运而生。分布式服务架构通过将服务部署...

    nginx笔记.zip

    **Nginx基础概念** Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件代理服务器。它的设计目标是高并发、低内存占用以及稳定可靠。...阅读"nginx笔记.pdf",可以更详细地了解Nginx的配置和使用技巧。

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

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

    nginx 笔记和资料

    **Nginx配置** Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,包含多个服务器块(server blocks)来处理不同域名或端口的请求。一个基本的服务器块配置可能如下: ```nginx server { listen 80; server_name...

    Nginx安装及配置笔记

    Nginx配置文件`nginx.conf`分为多个部分: 1. `main`:全局设置,如用户、工作进程数等。 2. `events`:定义Nginx的工作模式和连接处理策略。 3. `http`:包含多个`server`块,定义HTTP服务器的行为。 4. `server`:...

    nginx学习笔记及相关资料

    【Nginx配置文件】 Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,由多个块(blocks)组成,如http、server、location等。每个块可以包含子块,配置项包括监听端口、服务器名称、路由规则等。通过修改配置文件...

    CentOS6环境FastDFS+Nginx安装配置笔记.pdf

    在本篇《CentOS6环境FastDFS+Nginx安装配置笔记》中,主要涉及的是在 CentOS 6操作系统上搭建FastDFS分布式文件系统以及Nginx反向代理服务器的过程。FastDFS是一个开源的高性能、轻量级的分布式文件系统,而Nginx则...

    nginx学习笔记.docx

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

    nginx课堂笔记01

    本篇主要讲解如何在CentOS 7.4环境下,通过虚拟机VMware Workstation 16进行Nginx的安装与配置。 首先,我们需要在虚拟机上安装CentOS 7.4。下载地址为。安装过程中,可以选择典型配置,然后选择CentOS的ISO镜像。...

Global site tag (gtag.js) - Google Analytics