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瀏覽器。
通過分析這些信息,你可以了解訪問者的來源、使用的設備和瀏覽器等,從而為優化網站提供依據。