Các mô-đun Apache tối thiểu cần thiết cho trang web tĩnh và không có authN


12

Tôi vừa cài đặt gói httpd trong RHEL 6.1 (cung cấp Apache 2.2.15). Httpd.conf mặc định chứa không ít hơn 50 phiên bản của lệnh LoadModule.

Tuy nhiên, tất cả những gì tôi muốn làm là cung cấp nội dung tĩnh, bản đồ Google hoặc hai và một số CSS.

Thử và sai, cùng với đó apachectl configtest, khiến tôi tin rằng tôi có thể thoát khỏi chỉ với các mô-đun sau được bật (không có thay đổi nào khác đối với tệp cấu hình mặc định):

mod_authz_host
mod_log_config
mod_mime_magic
mod_setenvif
mod_mime
mod_autoindex
mod_negotiation
mod_dir
mod_alias

Có các mô-đun nên được đưa vào danh sách này để máy chủ hoạt động tốt hơn / an toàn hơn không? Các tài liệu chính thức dường như chỉ ra rằng không có gì nhiều hơn mod_dirmod_mimehoàn toàn cần thiết cho một trang web barebones.

Lưu ý: Tôi không mời tư vấn về việc sử dụng máy chủ HTTP nào cho tác vụ được chỉ định. Tôi biết sự tồn tại của máy chủ "nhẹ hơn". Câu hỏi này là về các mô-đun Apache.

Câu trả lời:


9

Câu trả lời được ám chỉ trong các tài liệu 2.2 chính thức, trong phần điều chỉnh hiệu suất .

Tất nhiên, một câu hỏi liên quan xuất hiện ở đây là, bạn cần mô-đun nào, và mô-đun nào bạn không cần. Câu trả lời ở đây, tất nhiên, sẽ thay đổi từ một trang web khác. Tuy nhiên, danh sách tối thiểu> các mô-đun mà bạn có thể nhận được có xu hướng bao gồm mod_mime, mod_dir và mod_log_config. Tất nhiên, mod_log_config là tùy chọn, vì bạn có thể chạy một trang web mà không cần tệp nhật ký. Điều này, tuy nhiên, không được khuyến khích.


6

Chỉ cần chú ý câu hỏi này khi tôi đang thiết lập một PC mới với Apache 2.2. Đây là httpd.conf tối thiểu tuyệt đối mà tôi quản lý để đưa ra:

    ServerName 127.0.0.1
    Listen 8080
    LoadModule dir_module modules/mod_dir.so
    LoadModule mime_module modules/mod_mime.so
    DirectoryIndex index.html 
    DocumentRoot "C:/http_root"
    ErrorLog "logs/error.log"
    LogLevel warn                

Tất nhiên bạn không cần ErrorLog, nhưng tôi đã thử nghiệm nên rõ ràng cần một số phản hồi nếu tệp httpd.conf của tôi gây ra sự cố. Bạn cần ServerNametránh một cảnh báo trong khi khởi động về việc không thể xác định địa chỉ máy chủ một cách đáng tin cậy. Tôi chắc chắn có thể xác nhận rằng bạn cần dir_modulemime_moduleđể bạn có thể phân phối tệp mặc định từ URL thư mục và cũng hiển thị tệp dưới dạng HTML chứ không phải văn bản thuần túy.

Tôi đang đăng bài này vì tôi thấy tệp httpd.conf mặc định cực kỳ phức tạp và tôi nhớ rằng khi tôi học Tomcat, mọi thứ trở nên rõ ràng hơn khi tôi phát hiện ra tệp cấu hình máy chủ tối thiểu tuyệt đối.

Nếu bạn muốn phục vụ các trang php, bạn chỉ cần 2 dòng sau (được điều chỉnh cho phù hợp với môi trường của bạn:

PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2_2.dll"

Sẽ rất hữu ích khi thấy điều này cho Linux, mũ đỏ trong trường hợp của tôi. Đang thử ở trên nhưng nó mất khá nhiều sửa đổi và vẫn không chuyển hướng đến tệp html mà tôi quan tâm.
alimack

1

Việc này mất một buổi sáng để xử lý lỗi và thử nghiệm nhưng trên Red hat 6 (ish), công việc này, lưu ý rằng tôi đã phải ghi đè lên tệp .htaccess hiện tại mà tôi không thể thay đổi. Điều này sẽ trỏ đến offline.html trong thư mục gốc của bạn

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  

<Directory />
AllowOverride None
</Directory>

Nếu bạn không cần ghi đè tệp htaccess, bạn có thể thoát khỏi điều này (giả sử bạn muốn ghi nhật ký lỗi):

ServerName 127.0.0.1
Listen 80
TypesConfig /etc/mime.types
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so

User apache
Group apache
DocumentRoot "/homedir/"
DirectoryIndex offline.html
ErrorLog "/homedir/error.log"
LogLevel warn  
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.