[关闭]
@bornkiller 2018-07-18T08:12:46.000000Z 字数 995 阅读 1065

nginx 标准处理

前端运维


前言

服务器上 nginx 可能输出大量日志,随着访问量增大,单文件会越来越大,影响读写性能,需要作日志切分,定时脚本可以完成,但是推荐使用系统自带 logrotate 来处理,避免引入过多自定义脚本。

日志切分

主要操作涉及如下文件:

  1. /etc/logrotate.conf
  2. /etc/logrotate.d/
  1. /var/log/*.log {
  2. daily
  3. rotate 7
  4. missingok
  5. dateext
  6. notifempty
  7. compress
  8. delaycompress
  9. sharedscripts
  10. postrotate
  11. [ -e /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
  12. endscript
  13. }

反向代理

  1. # 反向代理标准头
  2. proxy_set_header X-Real-IP $remote_addr;
  3. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  4. proxy_set_header Host $http_host;

访问日志

  1. # 默认日志格式
  2. log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
  3. '$status $body_bytes_sent "$http_referer" '
  4. '"$http_user_agent" "$http_x_forwarded_for"';
  5. # 改良日志格式,输出 IP 实际地址
  6. log_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
  7. '$status $body_bytes_sent "$http_referer" '
  8. '"$http_user_agent"';

性能日志

  1. # 运行状态采集 metricbeat
  2. location /server-status {
  3. allow 127.0.0.1;
  4. deny all;
  5. stub_status on;
  6. access_log off;
  7. }

参考

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注