Nginx日志中的访问来源可以通过分析$http_referer
和$http_user_agent
变量来获取。这两个变量分别表示访问来源的URL和用户代理信息。以下是如何解读这些信息的步骤:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/
目录下的某个文件。
在server
块中,找到access_log
指令,它定义了日志文件的路径和格式。例如:
access_log /var/log/nginx/access.log combined;
这里,日志文件路径为/var/log/nginx/access.log
,使用的日志格式为combined
。
Nginx预定义了一些日志格式,如combined
、common
、short
等。你也可以自定义日志格式。在http
块中,使用log_format
指令定义自定义格式,例如:
log_format my_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
然后,在server
块中使用access_log
指令引用自定义格式:
access_log /var/log/nginx/access.log my_format;
重启Nginx服务以应用更改:
sudo nginx -t
sudo systemctl restart nginx
打开访问日志文件,例如使用tail
命令查看最近的日志条目:
tail -n 100 /var/log/nginx/access.log
分析日志中的$http_referer
和$http_user_agent
变量。例如:
192.168.1.1 - - [21/Jul/2021:12:34:56 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
在这个例子中,$http_referer
为空,表示访问来源未知;$http_user_agent
为Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
,表示访问者使用的是Chrome浏览器。
通过分析这些信息,你可以了解访问者的来源、使用的设备和浏览器等,从而为优化网站提供依据。