nginx中$host与$http_host、$server_name取值与含义



概述: 很多时候,我们都需要用到nginx的全局变量,来进行判断或者功能使用实现,对于$http_host 、$host具体有什么区别,本文我们来看看对应的取值和含义吧!

为了能方便测试和看到效果,增加了一个maintest的日志定义, 其中增加了 "$http_host" "$host" "$server_addr" "$server_name" 这几个参数,方便我们在日志中体现出来,如下:


http {
 
......
......
......
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    log_format  maintest  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$http_host" "$host" "$server_addr" "$server_name"';
......
......
......
 
}

然后我们在server配置中调用maintest的日志定义:

server  {
 
    listen       2199;
    server_name  testlog.f8cp.com;
    index index.html index.htm;
    root  /opt/nginxtest;  
    access_log /var/log/nginx/access_nginxtestlog.log maintest;
......
......
......
 
}

查看日志效果:
149.45.123.22 - - [28/May/2021:10:11:36 +0800] "GET /testlog.txt HTTP/1.1" 404 578 "http://testlog.test.com:2199/" "Mozilla/5.0 (W

说明:
1、$server_name 直接取的是nginx配置文件中server段中 server_name 的值;
1、$server_addr 直接取的是服务器网卡的ip值;
1、$host 取的是访问的域名,即testlog.f8cp.com;
1、$http_host 取的是访问的域名加端口,即testlog.f8cp.com:2199;




 



本文标签: nginx $host $http_host $server_name

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/web/1657877643.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





跳转rewrite $host 错误页 定义404跳转 参数重写 nginx 编译安装 白名单 域名 cookie 防IP恶意 nginx插件 $server_name 强匹配 $http_host 与(and) referer限制 重写 模糊匹配 统计 404自定义 日志分析 nginx增加 后台管理 tcp代理 apache 跳转 geoIP模块 运算 案例分析