nginx 第三方模块 与变量

简介: nginx 第三方模块 与变量

一, 网页的状态页

详细见上一章         《nginx 配置文件详细介绍》

二,Nginx 第三方模块

开源 不是官方模块 别人写的 你编译进nginx(./configure 这一步添加的模块)

(一)ehco 模块

这边以echo 模块为例子,简单介绍第三方模块如何安装使用

1,如何添加echo 第三方模块

首先需要下载echomo模块      再需要将nginx重新编译安装

1.1 安装 git   下载(网速很慢  需要科学上网)

1.2  解压  注意是zip 压缩包  用unzip解压

1.3 再去到 源码包  查看添加第三方模块的命令是   ./configure --add-module=路径

 

1.4   重新编译安装(编译安装前  关闭nginx)

1.5  -V  查看模块

2, echo 模块 作用

nginx 在生产环境需要  经常使用变量   不使用echo模块,使用不了变量(会报错)

三  ,nginx 变量

分为内置变量以及   自定义变量

http://nginx.org/en/docs/varindex.html

官方文档

(一)常用内置变量

1, $remote_addr;   客户端的地址

#存放了客户端的地址,注意是客户端的公网IP

2,$proxy_add_x_forwarded_for;ip 透传

2.1   正向代理  反向代理

正向代理 代理的是客户端 (科学上网 翻墙)

反向代理 代理的是 服务端 (我们访问百度 实际访问的是代理服务器)

2.2 作用

不论多少个 代理服务器 都能看到客户端真实ip

要求 所有的代理服务器 和web 服务器都要打开 这个功能

3, $args;    参数

#变量中存放了URL中的参数

3.1 具体内容

如:http://www.kgc.org/main/index.do?id=20190221&partner=search

#返回结果为: id=20190221&partner=search

3.2 工作原理

找东西并不一定在本服务机 会去数据库找

4,$document_root;   根目录

#保存了针对当前资源的请求的系统根目录

注意! yum的是 /usr/share/nginx/html

          编译是自定义的  如 /apps/nginx/html

          会根据 locaton 走

5,$document_uri;    / 开始 ?前

#保存了当前请求中不包含参数的URI,注意是不包含请求的指令

如:http://www.kgc.org/main/index.do?id=20190221&partner=search

#返回结果为:  /main/index.do

6, $host;    服务端主机名

#存放了请求的host名称

7,$limit_rate;   限速

7.1 使用方法

limit_rate 10240;
echo $limit_rate;

7.2 注意事项

#如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0

8,$remote_port;   客户端端口

#客户端请求Nginx服务器时随机打开的端口,这是每个客户端自己的端口

9,$remote_user;   用户名

#已经经过Auth Basic Module验证的用户名

10,$request_body_file;    

#做反向代理时发给后端服务器的本地资源的名称

11,$request_method;   GET/PUT/DELETE等

#请求资源的方式,GET/PUT/DELETE等

12, $request_filename;   系统的真实 路径

#当前请求的资源文件的磁盘路径,由root或alias指令与URI请求生成的文件绝对路径,

13, $request_uri;    /后面的内容

例如: https:// www.baidu.com/main/index.do?id=20190221&partner=search 

返回值    /main/index.do?id=20190221&partner=search   相当于:$document_uri?$args

14,$scheme;  请求的协议

#请求的协议,例如:http,https,ftp等

15, $server_protocol;    客户端版本

#保存了客户端请求资源使用的协议的版本,例如:HTTP/1.0,HTTP/1.1,HTTP/2.0等

16, $server_addr;  服务器的IP

#保存了服务器的IP地址

17,  $server_name;   服务器的主机名

#请求的服务器的端口号,

18, $server_port;  443  https   服务器的端口号

$server_port;  443  https

 

19, $http_<name>;报文·首部字段

#name为任意请求报文首部字段,表示记录请求报文的首部字段

用法:

挑首部 得到后面的

20,  $http_user_agent; 客户端浏览器

#客户端浏览器的详细信息

21, $http_cookie;   客户端的cookie

#客户端的cookie信息

22, $cookie_<name>

#name为任意请求报文首部字部cookie的key名

23,$http_<name>

#name为任意请求报文首部字段,表示记录请求报文的首部字段,ame的对应的首部字段名需要为小写,如果有横线需要替换为下划线

#示例:
echo $http_user_agent;
echo $http_host;

24, $sent_http_<name>

#name为响应报文的首部字段,name的对应的首部字段名需要为小写,如果有横线需要替换为下划线,此变量有问题
echo $sent_http_server;

25,$arg_<name>

#此变量存放了URL中的指定参数,name为请求url中指定的参数
#对比 变量  $arg  是全部, 如果 要id   如下
echo $arg_id;

(二) 常用变量示例

服务机配置文件

客户机访问

-b  加上cookie

(三) 自定义变量

假如需要自定义变量名称和值,使用指令set $variable value;

1,语法

2,示例

服务机配置文件

注意: 可以把变量设置为变量!比如$server_port 你觉得比较难记   $my_port 好记

客户机访问

四,  需要了解熟记的模块

五,  几种常见请求方式

六 ,自定义图标

下载  百度图标

把下载好的图标   复制到主目录

客户机再次访问  可以看到我们的小图标已经设置完成了

相关文章
|
1月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
191 6
|
1月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
76 1
|
1月前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
71 3
|
1月前
|
应用服务中间件 nginx Python
nginx-upload-module模块实现文件断点续传_nginx upload module 断点续传 进度(1)
nginx-upload-module模块实现文件断点续传_nginx upload module 断点续传 进度(1)
|
1月前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
94 0
|
1月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
163 0
|
7月前
|
应用服务中间件 nginx
nginx中handle模块的编写小案例
nginx中handle模块的编写小案例
nginx中handle模块的编写小案例
|
1月前
|
存储 应用服务中间件 nginx
Nginx模块开发:handler模块实现
Nginx模块开发:handler模块实现
37 0
|
1月前
|
存储 应用服务中间件 nginx
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
97 0
|
1月前
|
存储 应用服务中间件 nginx
Nginx:过滤模块的实现
Nginx:过滤模块的实现