Câu hỏi Tôi có thể tắt an toàn các mô-đun Apache2 nào?


Đây là các mod được bật của tôi:

bí danh auth_basic authz_default authz_groupfile authz_host authz_user autoindex deflate dir env mime đàm phán php5 reqtimeout viết lại trạng thái setenvif

Tôi đang cố gắng giảm lượng bộ nhớ của Apache càng nhiều càng tốt.

Bất cứ ai có thể hướng dẫn tôi đi đúng hướng mà tôi hoàn toàn cần và đó là tùy chọn? Tôi có kế hoạch chạy Symfony, nhưng tôi không thể tìm thấy bất kỳ yêu cầu nào về symfony để làm cho nó hoạt động.

Cảm ơn!


13
2017-10-10 05:44


gốc


Tôi biết chắc chắn tôi cần php5 và viết lại bằng cách này. - gregghz


Các câu trả lời:


Vâng, bạn có thể bắt đầu bằng cách vô hiệu hóa tất cả auth / authz mô-đun, trừ khi bạn sẽ có Apache làm công việc xác thực cho bạn, trong trường hợp đó chỉ cho phép auth mô-đun mà bạn thực sự sẽ sử dụng.

Bạn có thể không thực sự cần autoindex module; bạn chỉ cần nó nếu bạn muốn Apache tự động tạo các tệp chỉ mục.

deflate - bạn thực sự muốn điều đó, vì vậy Apache có thể nén dữ liệu gzip trước khi gửi lại cho máy khách (giảm đáng kể lưu lượng truy cập).

reqtimeout - đó là thử nghiệm. Không chắc chắn nếu bạn đã bao gồm nó có chủ ý hay không.


9
2017-10-10 05:50



Cảm ơn vì điều đó, tôi đã có thể vô hiệu hóa hầu hết tất cả các mod mà bạn đề xuất không có vấn đề gì. Tuy nhiên, khi tôi vô hiệu hóa authz_host tôi đã nhận lỗi này khi khởi động lại máy chủ: Chúng tôi không thể tắt đúng apache, vì vậy chúng tôi hiện đang giết tất cả các quá trình apache đang chạy. Điều này gần như chắc chắn là tối ưu, vì vậy hãy đảm bảo hệ thống của bạn hoạt động như bạn mong đợi ngay bây giờ! ... đợi lỗi Cú pháp trên dòng 161 của /etc/apache2/apache2.conf: Lệnh không hợp lệ 'Đặt hàng', có lẽ sai chính tả hoặc được định nghĩa bởi một mô-đun không có trong cấu hình máy chủ - gregghz
Oh xin lỗi về điều đó. Vâng, authz_host cung cấp Allow / Deny / Order chỉ thị (xem httpd.apache.org/docs/current/mod/mod_authz_host.html) phần nào là tiểu học. :-) - Isaac
Hãy rất cẩn thận vô hiệu hóa bất cứ điều gì trừ khi bạn chắc chắn rằng nó không được sử dụng hoặc không phải là một phụ thuộc của mô-đun khác. Nếu bạn sử dụng bảng điều khiển hoặc có các tài khoản khác trên máy chủ, việc tắt mô-đun apache có thể làm hỏng mọi thứ. - Jestep
Tôi đã đề cập: sau khi bạn tắt mô-đun và trước khi tải lại cấu hình, bạn có thể sử dụng apache2ctl tiện ích để kiểm tra cấu hình: apache2ctl configtest. - Isaac
authz_core_module cũng được yêu cầu. Tôi đang sử dụng CentOS 7 với apache 2.4 mới nhất. - Basil Musa


Gần đây tôi đã đọc một trang web có chi tiết mà các mô-đun Apache có thể được loại bỏ một cách an toàn. Anh ta xem xét các trường hợp sử dụng phổ biến nhất nhưng bạn nên luôn kiểm tra sau đó và có thể khôi phục lại những gì bạn cần:

Đây là danh sách các mô-đun mà tác giả đã cho phép:

core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_event_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_user_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
dir_module (shared)
mime_module (shared)
setenvif_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)

Trang này chứa các chi tiết cho CentOS và máy chủ Ubuntu. Tôi khuyên bạn nên đọc toàn bộ trang vì nó chứa các chi tiết về lý do tại sao một số gói nhất định bị bỏ hoặc bị vô hiệu hóa cũng như các mẹo.


2
2017-10-27 08:35





Tôi chỉ sử dụng: dir, php5, authz_host, mime, viết lại.

Vô hiệu hóa các mô-đun vô ích sẽ giúp bạn tiết kiệm rất nhiều tài nguyên.

Tôi khuyên bạn nên vô hiệu hóa từng cái một và khởi động lại apache mỗi lần và kiểm tra. Cũng lưu ý các mô-đun bạn đã có lúc bắt đầu trong trường hợp có lỗi để có thể hoàn nguyên lại


1
2017-11-16 14:29





Tôi tạo ra một kịch bản python nhỏ để giúp bạn với nó. Xin hãy xem https://github.com/zioalex/unused_apache_modules

Đây là những gì bạn có thể mong đợi từ nó:

curl http://localhost/server-info > http_modules_test.txt
cat http_modules_test.txt| python find_unused_apache_mod.py

1
Module name mod_python.c
Configuration Phase Participation: 4
Request Phase Participation: 11
Current Configuration: 3

2
Module name mod_version.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 1

3
Module name mod_proxy_connect.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 0

To remove safely:
 ['mod_proxy_connect.c']
POPPED:  mod_proxy_connect.c

To KEEP:  ['mod_python.c', 'mod_version.c', 'mod_proxy_connect.c']

1
2017-07-19 16:16





Nhận xét hoặc tắt tất cả các mô-đun.

while fails $(apachectl configtest) # or apache2ctl configtest on debian
do
 if directive needed
  Add in the module that supplies the directive complained about.
 else
  delete directive
 fi
done

Nó dễ dàng hơn bình luận chúng từng cái một, bạn kết thúc với tập hợp tối thiểu. Do thử nghiệm sau đó rằng tất cả các công trình, nhưng tôi đã sử dụng nó như là một quá trình một vài lần không có vấn đề lớn, nhưng một module cấu hình miễn phí có thể trong lý thuyết thất bại (nếu có một điều như vậy).


0
2018-02-19 11:56





Tôi đã thu hẹp danh sách các mô-đun đã bật của mình từ actions alias auth_basic auth_digest authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dav dav_fs dav_svn deflate dir env fcgid mime negotiation php5 proxy proxy_balancer proxy_connect proxy_http reqtimeout rewrite ruby setenvif ssl status suexec để nhẹ hơn nhiều: authz_host deflate dir fcgid mime php5 rewrite.


0
2018-05-06 08:02