在Nginx日志中,可以通过分析$http_referer变量来查看访问来源。$http_referer变量包含了用户代理从哪个页面链接访问当前页面的信息。要查看访问来源,你需要在Nginx配置文件中的log_format指令中定义一个新的日志格式,然后在access_log指令中使用这个新的日志格式。
以下是一个示例,展示了如何在Nginx配置文件中定义一个新的日志格式以查看访问来源:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your_domain.conf。
在http块中,定义一个新的日志格式,例如:
http {
log_format referer_log '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
}
在这个示例中,我们创建了一个名为referer_log的新日志格式,其中包含了$http_referer变量。
server块中,使用新的日志格式:server {
...
access_log /var/log/nginx/access.log referer_log;
...
}
这里我们将新的日志格式referer_log应用于access_log指令。
sudo nginx -t # 检查配置文件语法是否正确
sudo nginx -s reload # 重新加载配置文件
现在,Nginx访问日志将包含访问来源信息。你可以使用以下命令查看访问来源:
grep "\"http_referer\"" /var/log/nginx/access.log
这将显示所有访问来源的记录。如果你想查看特定时间范围内的访问来源,可以使用awk、sed等工具进行筛选。