概述: 很多时候,我们都需要用到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;

