Apache có đóng từng tệp nhật ký sau mỗi lần ghi không?
Sử dụng nguồn, đó là tại:
https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/loggers/mod_log_config.c?view=markup
Bạn có thể đọc từ nó:
251 * log_writer là NULL trước khi tệp nhật ký được mở và
252 * được đặt thành cấu trúc mờ đục (thường là fd) sau khi được mở.
Đó là loại gợi ý rằng nó chỉ được mở một lần.
Trên thực tế, nếu bạn nhìn vào mã, nó sẽ mở sớm, khi khởi tạo và sau đó không bao giờ đóng, vì những lý do rõ ràng về hiệu suất.
Nếu Không, giải pháp khi có nhiều máy chủ ghi vào một vị trí ghi nhật ký duy nhất trên hệ thống tệp mạng là gì?
Tuyệt đối đừng bao giờ làm thế, vì hai lý do. Đầu tiên không đăng nhập từ xa theo cách đó. Đăng nhập cục bộ (và gửi các tệp nhật ký riêng biệt, chẳng hạn như bạn có thể xoay vòng hàng giờ) hoặc sử dụng các trình nền thích hợp, nhật ký hệ thống
theo mặc định, biết cách gửi nội dung nhật ký bằng UDP (hoặc TCP), cũng như các giải pháp mới hơn. Không gắn đĩa từ xa và ghi tệp nhật ký vào đó, điều đó sẽ làm giảm hiệu suất và tạo ra một loạt vấn đề (đặc biệt nếu bạn muốn nói từ xa như trong "NFS").
Và ngay cả khi cục bộ, mỗi ứng dụng nên đăng nhập vào tệp nhật ký của riêng nó, không có nhiều ứng dụng đăng nhập vào cùng một tệp, điều này chắc chắn sẽ tạo ra tất cả các loại điều kiện chủng tộc, ghi đè, v.v. Bản thân Apache là một ứng dụng ngay cả khi nó rẽ nhánh , nhưng nếu bạn có 2 Apache chạy riêng trên cùng một máy chủ với các cấu hình khác nhau, thì mỗi Apache sẽ đăng nhập vào các tệp nhật ký của riêng chúng.
Hoặc xem tính năng Apache để đăng nhập vào đường ống, nhưng điều này cũng có nhược điểm.