当你在Amazon Beanstalk上创建一个实例时,你可能会注意到奇怪的nginx访问日志。这些日志记录了访问AWS Elastic Beanstalk代理服务器的请求。在CloudWatch Logs中,这些日志看起来像这样:
10.0.0.1 - - [07/Feb/2020:19:26:56 +0000] "GET HTTP/1.1" 200 - "-" "ELB-HealthChecker/1.0" 0/10/50/-1/1000 200 0 - - KEQKPscjqL2qw77tOkDbEQ== 0.156 0.156 .
虽然这些日志是由AWS Elastic Beanstalk代理服务器生成的,但它们涉及NGINX。因此,你可以通过更改NGINX的格式来改变访问日志的格式。在你的项目根目录中的".ebextensions"文件夹中创建一份nginx.config 文件。文件包含以下内容:
files:
"/etc/nginx/conf.d/custom_logs.conf":
content: |
log_format custom_logs '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_time $upstream_response_time $upstream_connect_time $upstream_header_time '
'$request_length $bytes_sent '
'"$gzip_ratio" '
'ID-$request_id '
'$ssl_protocol/$ssl_cipher '
'$http_x_forwarded_for';
access_log /var/log/nginx/access.log custom_logs;
container_commands:
"00_remove_existing_nginx_logs":
command: 'rm /var/log/nginx/*'
ignoreErrors: true
"01_restart_nginx":
command: 'sudo service nginx restart'
在这个配置文件中,我们定义了一个名为"custom_logs"的日志格式,并将其应用于NGINX。我们还将新的访问日志记录到/var/log/nginx/access.log。最后,我们在容器命令中使用两个命令,第一个命令删除现有的所有NGINX日志文件,第二个命令重新启动NGINX以使用新的日志格式。
现在,访问日志的格式将变为以下格式(或自定义格式):
$remote_addr - $remote_user [$time_local] "$