Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

Apache là một máy chủ web nguồn mở thực hiện, và nó là máy chủ web phổ biến nhất trên toàn thế giới. Gần 70% các máy chủ web trên Internet đang sử dụng Apache. Mặc dù chúng tôi có thể cải thiện hiệu suất máy chủ Apache bằng cách thêm phần cứng bổ sung như RAM, CPU, v.v., chúng tôi cũng có thể đạt được kết quả tương tự bằng cách tùy chỉnh cấu hình Apache.

Bài đăng này giải thích cách cải thiện hiệu suất Apache mà không cần thêm tài nguyên phần cứng bổ sung vào hệ thống của bạn.

Lưu ý : hướng dẫn này được thực hiện trên máy chủ Ubuntu 14.04 14.04.

MaxKeepAliveRequests

MaxKeepAliveRequests giới hạn số yêu cầu được phép cho mỗi kết nối. Nó được sử dụng để kiểm soát các kết nối liên tục. Trong Ubuntu, giá trị mặc định của MaxKeepAliveRequests100 . Bạn có thể thay đổi nó thành bất kỳ giá trị nào bạn muốn. Giá trị được đề nghị của MaxKeepAliveRequests là từ 50 đến 75.

Bạn có thể thay đổi giá trị này bằng cách chỉnh sửa tệp cấu hình Apache.

 sudo nano /etc/apache2/apache2.conf 

Thay đổi giá trị từ 100 đến 60.

 MaxKeepAliveRequests 60 

Lưu tệp và khởi động lại Apache.

 sudo /etc/init.d/apache2 khởi động lại 

KeepAliveTimeout

KeepAliveTimeout xác định thời gian máy chủ chờ yêu cầu mới từ các máy khách được kết nối. Đặt KeepAliveTimeout thành giá trị cao có thể gây ra các vấn đề về hiệu năng trong máy chủ web được tải nhiều. Trong Ubuntu, giá trị mặc định của KeepAliveTimeout15 . Giá trị đề nghị của KeepAliveTimeout là từ 1 đến 5.

Bạn có thể thay đổi giá trị này bằng cách chỉnh sửa tệp cấu hình Apache.

 sudo nano /etc/apache2/apache2.conf 

Thay đổi giá trị từ 15 thành 3.

 KeepAliveTimeout 3 

Lưu tệp và khởi động lại Apache.

MaxClients

Nó đặt giới hạn về số lượng kết nối đồng thời sẽ được phân phát. Mọi yêu cầu kết nối mới sẽ được xếp hàng sau giới hạn này. Khi quá trình được giải phóng, kết nối được xếp hàng đợi sẽ được phân phối. Trong Ubuntu, giá trị MaxClients mặc định là 250 . Bạn nên giữ giá trị này ở mức 150 .

Bạn có thể thay đổi giá trị này bằng cách chỉnh sửa tệp “mpm_prefork.conf”.

 sudo nano /etc/apache2/mods-available/mpm_prefork.conf 

Thay đổi giá trị từ 250 đến 150.

 MaxClients 150 

Lưu tệp và khởi động lại Apache.

MaxConnectionsPerChild

Nó được sử dụng để tái chế các quy trình. Khi giới hạn này được đặt thành 0, số lượng yêu cầu không giới hạn được phép cho mỗi quy trình. MaxConnectionsPerChild đặt giới hạn về số lượng yêu cầu mà một tiến trình con riêng lẻ sẽ xử lý. Sau khi đạt đến giới hạn quy định, quá trình con sẽ chết. Trong Ubuntu, giá trị MaxConnectionsPerChild mặc định là 100 .

Các giá trị được đề xuất cho cài đặt này là:

  • máy chủ ảo hóa 300
  • máy chủ với RAM 1-4GB 500
  • máy chủ với RAM 4 + GB 1000

Bạn có thể thay đổi giá trị này bằng cách chỉnh sửa tệp “mpm_prefork.conf”.

 sudo nano /etc/apache2/mods-available/mpm_prefork.conf 

Thay đổi giá trị từ 100 đến 300.

 MaxConnectionsPerChild 300 

Lưu tệp và khởi động lại Apache.

Cố sống đi

Theo mặc định, cài đặt này được đặt thành O n trong Ubuntu. Khi máy chủ Apache nhận được yêu cầu từ hàng trăm và hàng ngàn IP cùng lúc, thì cài đặt này sẽ bị Off . Bạn nên tắt cài đặt này để tăng thông lượng kết nối.

Bạn có thể tắt cài đặt này bằng cách chỉnh sửa tệp cấu hình Apache.

 sudo nano /etc/apache2/apache2.conf 

Thay đổi giá trị từ On thành Off.

 KeepAlive Off 

Lưu tệp và khởi động lại Apache.

MinSpareServers và MaxSpareServers

Nó thiết lập số lượng tối thiểu và tối đa các quy trình máy chủ con nhàn rỗi mong muốn. Nó kiểm soát số lượng các tiến trình con không sử dụng Apache sẽ tiếp tục sống trong khi chờ đợi thêm các yêu cầu để đưa chúng vào sử dụng. Mỗi quá trình con tiêu thụ tài nguyên, vì vậy nếu bạn đặt giá trị MaxSpareServers quá cao, thì nó có thể gây ra các vấn đề về tài nguyên.

Các giá trị được đề xuất cho MinSpareServers là:

  • máy chủ ảo hóa 5
  • máy chủ với RAM 1-2GB 10
  • máy chủ với RAM 2-4GB 20
  • máy chủ với RAM 4+ GB 25

Các giá trị được đề nghị cho giá trị MaxSpareServers nên được đặt thành gấp đôi giá trị của MinSpareServers .

Bạn có thể thay đổi giá trị MinSpareServers thành 5 và giá trị MaxSpareServers thành 10 bằng cách chỉnh sửa tệp “mpm_prefork.conf”.

 sudo nano /etc/apache2/mods-available/mpm_prefork.conf 
 MinSpareServers 5 MaxSpareServers 10 

Lưu tệp và khởi động lại Apache.

Phần kết luận

Cấu hình Apache cho hiệu suất tối đa là rất dễ dàng. Bạn cũng có thể hiểu các yêu cầu của máy chủ web và kiểm tra với các tùy chọn có sẵn khác nhau. Bạn sẽ tìm thấy thêm các mẹo để tối ưu hóa Apache trong bài đăng tiếp theo của tôi. Hãy bình luận nếu bạn có bất kỳ câu hỏi nào.