要设置 Nginx 日志记录访问 IP,你需要编辑 Nginx 的配置文件。以下是具体步骤:
Nginx 的配置文件通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/
目录下的某个虚拟主机配置文件。使用文本编辑器打开配置文件,例如:
sudo nano /etc/nginx/nginx.conf
或者
sudo nano /etc/nginx/sites-available/your_domain.conf
将 your_domain.conf
替换为你的域名或虚拟主机配置文件名。
在 http
、server
或 location
块中,找到 log_format
指令。如果没有找到,请在合适的位置添加一个。例如,你可以创建一个新的日志格式,用于记录访问 IP:
http {
...
log_format ip_only '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
...
}
这里,$remote_addr
变量表示访问 IP。如果你想记录经过代理服务器的访问 IP,可以使用 $http_x_forwarded_for
变量。
在 server
或 location
块中,找到 access_log
指令。如果没有找到,请添加一个。将 log_format
指令的名称(例如 ip_only
)作为参数传递给 access_log
指令。例如:
server {
...
access_log /var/log/nginx/your_domain_access.log ip_only;
...
}
将 your_domain_access.log
替换为你希望存储访问日志的文件名。
保存更改并退出编辑器。
重载 Nginx 配置
为了使更改生效,请重载 Nginx 配置:
sudo nginx -t # 检查配置文件语法是否正确
sudo nginx -s reload # 重载配置文件
现在,Nginx 应该会使用新的日志格式记录访问 IP。你可以查看指定的日志文件(例如 /var/log/nginx/your_domain_access.log
)以验证更改。