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¬ice=456 中$args 表示“token=123¬ice=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 是一个流行的开源 Web 服务器软件,能够处理高并发请求,常用于搭建高性能的 Web 服务器。本文将对 Nginx 的安装、配置、日志管理等方面进行详细的介绍。 一、Nginx 的安装 Nginx 的安装可以...
这个“Nginx学习笔记.zip”压缩包文件包含了一系列关于Nginx的教程资源,分别命名为“第1节课”到“第5节课”,暗示着一个逐步深入的学习过程。 在第一节课中,我们通常会了解Nginx的基本概念和安装步骤。Nginx的...
"Nginx高级配置笔记" Nginx是一款流行的开源Web服务器软件,广泛应用于Web开发和生产环境中。以下是Nginx高级配置笔记的要点总结: 扩展式负载均衡 Nginx提供了多种方式来实现扩展式负载均衡,包括: 1. 单机...
**Nginx学习笔记概述** ...它以其稳定性、高性能以及丰富的模块配置而受到广泛赞誉,常用于网站的负载均衡、静态...在实际应用中,还需要结合具体业务需求,灵活调整和优化Nginx配置,以实现最佳的系统性能和服务质量。
里面有关于nginx所有的配置具体的介绍,其中有nginx怎样配置负载均衡,图片服务器,资源压缩,黑白名单限制,websocket反向代理,rewrite重写规则,服务器缓存设置,ssl证书配置,keepalive部署nginx集群,openResty...
学习的nginx配置信息,包括反向代理,负载均衡,和ip过滤。
- **events 块**:配置 Nginx 与客户端的网络连接,如最大连接数 `worker_connections`。 - **http 块**:配置反向代理、负载均衡等高级功能,包括多个 server 块。 **6. Nginx 配置示例** - **反向代理**:通过 `...
08.nginx配置实例(反向代理准备工作) 09.nginx配置实例(反向代理实例一) 10.nginx配置实例(反向代理实例二) 11.nginx配置实例(负载均衡) 12.nginx配置实例(动静分离准备工作) 13.nginx配置实例(动静...
Nginx学习笔记1 Nginx是当前使用最广泛的Web服务器之一,它提供了强大的服务器功能和灵活的配置方式。本文档将介绍Nginx的基本概念、安装过程、配置方法和常见问题解决方案。 一、Nginx的基本概念 Nginx是一个...
### Nginx 学习笔记 #### Nginx 集群与分布式服务架构 在当前互联网技术高速发展的背景下,单台服务器已经无法满足日益增长的业务需求。为了解决这一问题,分布式服务架构应运而生。分布式服务架构通过将服务部署...
**Nginx基础概念** Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件代理服务器。它的设计目标是高并发、低内存占用以及稳定可靠。...阅读"nginx笔记.pdf",可以更详细地了解Nginx的配置和使用技巧。
"nginx 学习笔记实用知识库分享知识分享" 以下是从给定的文件中生成的相关知识点: Nginx 介绍 Nginx 是一个自由的、开源的、高性能的 HTTP 服务器和反向代理服务器,使用 C 语言编写,提供了高性能、可靠性和可...
**Nginx配置** Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,包含多个服务器块(server blocks)来处理不同域名或端口的请求。一个基本的服务器块配置可能如下: ```nginx server { listen 80; server_name...
Nginx配置文件`nginx.conf`分为多个部分: 1. `main`:全局设置,如用户、工作进程数等。 2. `events`:定义Nginx的工作模式和连接处理策略。 3. `http`:包含多个`server`块,定义HTTP服务器的行为。 4. `server`:...
【Nginx配置文件】 Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,由多个块(blocks)组成,如http、server、location等。每个块可以包含子块,配置项包括监听端口、服务器名称、路由规则等。通过修改配置文件...
在本篇《CentOS6环境FastDFS+Nginx安装配置笔记》中,主要涉及的是在 CentOS 6操作系统上搭建FastDFS分布式文件系统以及Nginx反向代理服务器的过程。FastDFS是一个开源的高性能、轻量级的分布式文件系统,而Nginx则...
### Nginx 学习笔记知识点总结 #### 一、Nginx 简介及安装 **Nginx** 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,...
本篇主要讲解如何在CentOS 7.4环境下,通过虚拟机VMware Workstation 16进行Nginx的安装与配置。 首先,我们需要在虚拟机上安装CentOS 7.4。下载地址为。安装过程中,可以选择典型配置,然后选择CentOS的ISO镜像。...