Chúng tôi có hai Windows Server , một trong 2012 R2 và một ở 2008 R2 trong đó sử dụng Apache HTTP Server ( httpd
) 2.4 trong proxy / chế độ reverse-proxy (sử dụng ProxyPass
, ProxyPassReverse
và máy chủ ảo cấu hình). Cả hai máy chủ đều sử dụng bản dựng nhị phân Apache 2.4.27 x64 từ Apache Haus.
Chúng tôi có một số tập lệnh sao lưu đang chạy trên cả hai máy chủ. Họ dừng tất cả các dịch vụ (bao gồm cả Apache) sau đó thực hiện sao lưu và khởi động lại tất cả các dịch vụ.
Các kịch bản này đang hoạt động tốt kể từ vài năm (gần 4 năm). Nhưng bắt đầu từ July 12, 2018
, hành vi bây giờ là lạ. Các tập lệnh sao lưu đang thực hiện công việc của chúng, dừng tất cả các dịch vụ, tạo bản sao lưu nhưng bây giờ, tất cả các dịch vụ đều được khởi động lại trừ Apache.
Sau khi điều tra, tôi thấy rằng dịch vụ Apache 2.4.27 không thể dừng lại. Khi sử dụng bảng điều khiển Dịch vụ và cố gắng dừng dịch vụ theo cách thủ công, bảng điều khiển hiển thị "Dừng" và không có gì xảy ra.
Vì vậy, tôi đã kiểm tra các quy trình đang chạy và thấy rằng một httpd.exe
quy trình đang chạy. Tôi đã cố giết quá trình đó nhưng không có may mắn.
Vì vậy, tôi đã thử:
taskkill /im "httpd.exe" /f /t
Và đầu ra là:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Vì vậy, tôi đã thử nghiệm để giết quá trình pskill
từ Sysiternals:
pskill -t 560
Và đầu ra là:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Nhưng điều này là sai, vì httpd
quá trình luôn luôn chạy!
Vì vậy, tôi đã cập nhật Apache từ 2.4.27 đến 2.4.34, nhưng vấn đề vẫn còn. Điều duy nhất cần làm để bỏ chặn tình huống là khởi động lại toàn bộ máy chủ.
Tôi đã kiểm tra các bản cập nhật đã cài đặt và một số trong số chúng đã được cài đặt vào July 11, 2018
một ngày trước đó:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Vì vậy, tôi cho rằng vấn đề là từ một trong những cập nhật này. Vì vậy, trước khi gỡ cài đặt tất cả chúng, có ai đó có cùng vấn đề với tôi không, ý tôi là Apache 2.4 trở nên không thể sử dụng được và không thể dừng lại trên Windows Server?
Vấn đề lớn là, nếu httpd
quá trình đó không thể bị giết, Apache không thể được khởi động lại vì cổng 80 đã bị ràng buộc.