一, 网页的状态页
详细见上一章 《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 好记
客户机访问
四, 需要了解熟记的模块
五, 几种常见请求方式
六 ,自定义图标
下载 百度图标
把下载好的图标 复制到主目录
客户机再次访问 可以看到我们的小图标已经设置完成了