nginx中的内置变量
$remote_addr;
#存放了客户端的地址,注意是客户端的公网IP
$args; #变量中存放了URL中的所有参数 #例如:https://search.jd.com/Search?keyword=手机&enc=utf-8 #返回结果为: keyword=手机&enc=utf-8
$document_root; #保存了针对当前资源的请求的系统根目录
$document_uri; #保存了当前请求中不包含参数的URI,注意是不包含请求的指令
$scheme; #请求的协议,例如:http,https,ftp等
报这个错是因为在源码编码的时候没有加上echo这个模块
可以平滑升级nginx 然后添加echo这个模块
编译的时候用addmodule加上echo这个模块然后make编译
把之前的nginx备份
#USR2 平滑升级可执行程序,将存储有旧版本主进程PID的文件重命名为nginx.pid.oldbin,并启动新的 nginx #此时两个master的进程都在运行,只是旧的master不在监听,由新的master监听80 #此时Nginx开启一个新的master进程,这个master进程会生成新的worker进程,这就是升级后的Nginx进 程,此时老的进程不会自动退出,但是当接收到新的请求不作处理而是交给新的进程处理。
回收老版本
平滑升级成功
然后echo模块也能够使用了
假如需要自定义变量名称和值,使用指令set $variable value;
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
server {
listen 80;
server_name lee.timinglee.org;
root /webdata/nginx/timinglee.org/lee;
location /var {
default_type text/html;
set $name timinglee;
echo $name;
set $web_port $server_port;
echo $web_port;
}
}
测试输出
[root@client ~]# curl lee.timinglee.org/var
timinglee
80