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浏览器。
通过分析这些信息,你可以了解访问者的来源、使用的设备和浏览器等,从而为优化网站提供依据。