การหมุนบันทึก NginX


9

ฉันให้บริการสองสามโดเมนที่แตกต่างกันผ่าน NginX บนเซิร์ฟเวอร์เดียวกันและพวกเขาแต่ละคนล็อกไฟล์ของตนเอง ฉันต้องตั้งค่าสคริปต์เพื่อหมุนและบีบอัดไฟล์เหล่านี้และเพิ่มลงใน cron

ฉันรู้ว่าฉันต้องทำบางอย่างเพื่อให้ NginX เปิดไฟล์บันทึกใหม่เมื่อย้ายไฟล์เก่า ใครสามารถให้ขั้นตอนการหมุนล็อกไฟล์ nginx ให้ฉันได้อย่างปลอดภัยหรือไม่ ฉันเดาว่าฉันต้องใช้ logrotate ฉันจะกำหนดค่าได้อย่างไร

ระบบ:

  • เซิร์ฟเวอร์ Ubuntu 9.04 ed.
  • Nginx / 0.7.61

คำตอบ:


18

มันกลายเป็นกึ่งมาตรฐานแบบไม่เป็นทางการระหว่าง Unix daemons ที่พวกเขาล้างข้อมูลและ / หรือหมุนล็อกไฟล์เมื่อคุณส่งสัญญาณ Hangup ( SIGHUP) Nginx ไม่เป็นไปตามอนุสัญญานี้ไปยังตัวอักษร แต่มันตอบสนองต่อUSR1สัญญาณทางเดียวกันเช่นเป็นเอกสารบนเว็บไซต์ Nginx ภายใต้ชื่อเข้าสู่ระบบการหมุน

ดังนั้นคุณสามารถลองสิ่งที่ชอบ

kill -s USR1 `pidof nginx`

1
อีกวิธีหนึ่ง "pkill -USR1 -n -x nginx"
Palani

11

การล็อก nginx บันทึก:

# nginx SIGUSR1: Re-opens the log files.
/opt/nginx/logs/access.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
 endscript 
}

/opt/nginx/logs/error.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate  
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
  endscript
}

logrotating บันทึกการผลิตราง:

/home/app_user/apps/railsapp/log/production.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
  endscript
}

ไฟล์นี้ฉันควรใส่ไฟล์ไหน?
Emil Stenström

/etc/logrotate.d/nginxถ้าใช้อูบุนตูคุณควรใส่เส้นเหล่านี้ของรหัสลงในแฟ้มนี้: และมันจะมีผล
Siwei Shen 申思维

3

หากคุณใช้ logrotate ให้เพิ่มสิ่งต่อไปนี้ (พร้อมตำแหน่งที่ถูกต้อง) ลงในส่วนของ nginx ของ logrotate.conf:

postrotate
  kill -s USR1 `cat /location/of/nginx.pid`
endscript

ตามที่logrotate (8) หน้าคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.