CHMOD là gì ?

Bạn hãy thử vào bất cứ diễn đàn thảo luận về thiết kế web nào, chắc chắn sẽ bắt gặp câu hỏi: “Thế nào là CHMOD?”. Thực ra không có gì phức tạp trong vấn đề này cả, nhưng dẫu sao để hiểu một cách thấu đáo về nó, chắc phần lớn trong số các bạn đều cần đến sự giúp đỡ. Chúng ta hãy bắt đầu bàn về nó nhé…

CHMOD – đó là phạm trù liên quan đến các files và thư mục, có chức năng chỉ ra cho server biết, ai có thể làm gì đối với file hay thư mục nào đó.

Chủ yếu CHMOD đưa ra các lệnh như quyền được đọc, viết vào file (hay thư mục), quyền thực hiện một công việc nhất định. Vì phần lớn các servers làm việc trên cơ sở hệ thống UNIX, nên chúng ta sẽ nghiên cứu về cách CHMOD chính cho các servers này.

Trên các hệ thống UNIX, người sử dụng được chia ra làm 3 nhóm: “user” (chủ nhân trực tiếp của các files), “group” (thành viên của nhóm mà người chủ nhân file có tham gia) và “world” (tất cả những trường hợp khác). Khi bạn kết nối với server, nó sẽ xác định xem bạn thuộc về nhóm nào.

Ví dụ bạn kết nối với server bằng FTP, khai báo tên truy cập như một thành viên, chính server sẽ quy bạn vào nhóm “user”. Còn những thành viên khác truy cập bằng FTP thuộc về nhóm “group”. Khi ai đó đến site của bạn bằng trình duyệt web, sẽ được quy vào nhóm “world”. Sau khi xác định nhóm, người sử dụng sẽ được gán quyền hạn nhất định đối với file hoặc thư mục nào đó.

Cụ thể là người sử dụng sẽ được đọc, ghi hay tạo mới (hoặc xóa) file. Để xem thư mục nào đó thì nó phải ủng hộ cho việc xem này. Để được xem nội dung thư mục, thì các files hay thư mục con trong đó cũng phải có chế độ “Cho phép đọc”.

Còn để tạo file hay thư mục mới nằm trong thư mục này lại đòi hỏi phải có quyền ghi. Tóm lại, để thực hiện một trong những việc trên, cần phải đặt vào thư mục chế độ “quyền đọc” và “quyền thực hiện”. Bây giờ chúng ta sẽ thực hành… Như trên đã nêu, có tất cả 3 nhóm người sử dụng và 3 “quyền hạn” đối với files hay thư mục.

Để xác định quyền hạn cho các nhóm nhất định, thống nhất sử dụng các ký hiệu bằng con số như sau: 4 = read (quyền được đọc) 2 = write (quyền được ghi) 1 = execute (quyền được thực hiện) Bằng phép cộng đơn giản các con số này có thể hiển thị được cả một “tổ hợp” quyền hạn khác nhau. Ví dụ:

  • 3 (2+1) – quyền ghi và quyền thực hiện đối với file (hay thư mục);
  • 5 (4+1) – quyền đọc và quyền thực hiện;
  • 6 (4+2) – quyền đọc và quyền ghi;
  • 7 (4+2+1) – quyền đọc, ghi và thực hiện.

Tóm lại có tất cả 7 phương án sau:

  • 7 = read, write & execute
  • 6 = read & write
  • 5 = read & execute
  • 4 = read
  • 3 = write & execute
  • 2 = write
  • 1 = execute

Ký hiệu lệnh CHMOD thường có 3 con số: con số đầu thể hiện quyền hạn gán cho người sử dụng thuộc nhóm “user” (Tức là đối với bạn).

Con số thứ hai chỉ ra quyền hạn của người sử dụng thuộc nhóm “group” và con số thứ ba – dành cho nhóm “world”. Trong phần lớn các chương trình FTP hiện đại đều ủng hộ CHMOD theo kiểu nêu trên (Ví dụ, công cụ truy cập bằng FTP mạnh nhất hiện nay là CuteFTP) Thế nhưng cũng không thừa nếu như ta biết thêm về các lệnh của hệ thống UNIX. lệnh “chmod” trong UNIX có 2 chế độ: tuyệt đối (Bằng các con số) và bằng các ký hiệu chữ.

Khi sử dụng chế độ tuyệt đối (bằng các con số), thống nhất dùng tổ hợp 3 con số được nêu trên để thể hiện quyền hạn. Trong trường hợp sử dụng ký hiệu chữ, chúng ta sẽ bắt gặp những ký hiệu sau: “r” – quyền được đọc “w” – quyền được ghi “x” – quyền được thực hiện Ngoài ra còn có: “u” – đối với user “g” – đối với group “o” – đối với other (world) “a” – đối với all (tất cả) Ví dụ: 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.

CHMOD an toàn

Hiện nay có rất nhiều diễn đàn bị Local Attack và dẫn đến hiện tượng down forum rất nhiều . Bài hướng dẫn này không hoàn toàn có thể giúp các bạn chống được Local Attack mà chỉ hạn chế được phần nào. Nguyên nhân bị Local do những sai lầm chết người của các Admin, ngay cả VNMagic cũng mắc sai lầm rất đáng trách . – CHMOD sai, Forum của VNMagic CHMOD file conf_global. khong chap nhan php là 666 do đó dễ dàng bị Edit file và lỗi này được TQN khai thác liên tục mà Kingasawa không hề sửa đổi . Bản thân thư mục CHMOD la 755 do đó trên Server Linux, Config ko kỹ thì toàn bộ cấu trúc Folder và nội dung File đều có thể View được.

– Cấu trúc Forum ko có nhiều sửa đổi so với bản gốc nên attacker có thể dễ dành đoán biết vị trí các file quan trọng cần để lấy thông tin .

– Các thông tin quan trọng không hề được mã hóa .(cái này thì hạn chế một chút )

– Các thông tin quan trọng và các Action can thiệp đến CSDL ko được bảo vệ bởi các firewall Thực ra Local Attack có thể làm được rất nhiều thứ nguy hiểm hơn và khả năng chống cự là không thể nếu như bạn ko Zendcode và không có một Server tốt (có thể chống được Remview, CGI Telnet==> đây là hai công cụ Local rất tốt, chưa kể đến SSH Local nếu có Shell) Do đây là bài viết về bảo mật vả lại cũng ko muốn phổ biến kỹ thuật Hack nguy hiểm này nên tôi chỉ trình bày sơ qua các nguyên nhân dẫn đến tình trạng bị Local Attack rất phổ biến hiện nay ở VN .

Từ các phân tích trên có một số khuyến nghị tôi xin đưa ra để mọi người khắc phục :
– Mã hóa thông tin, các bạn có thể mã hóa thông tin lại và việc này sẽ vô hiệu hóa được việc các thông tin quan trọng của bạn bị đánh cắp .
– Tôi sẽ cho các bạn download Zendcode miễn phí của Matrix, có đầy đủ License, các bạn Load tại đây nhé :

http://www.matrix2kol.net/download/
– CHMOD cho đúng, các bước sau đây rất quan trọng để bạn chống Local nên đề nghị các bạn chú ý thực hiện cho đúng :

  • CHMOD thư mục Public_html thành 710 thay vì 750 mặc định việc này sẽ giúp bạn bảo vệ được cấu trúc Website của mình.
  • CHMOD thư mục là 701 và cố gắng đừng bao giờ CHMOD 777, có một số folder ko quan trọng, bạn có thể CHMOD 755 để có thể hiện thị đúng và đầy đủ một số nội dung trong Folder đó .
  • CHMOD File là 604 và nhớ rằng đừng bao giờ để là 666 nếu có việc cần 666 thì bạn CHMOD tạm để sử dụng lúc đó, sau đó hãy CHMOD lại ngay. Đối với các Server hỗ trợ CHMOD file 404 bạn hãy CHMOD như vậy, ví dụ Server Eshockhost.net

Chú ý thế này, một số Server hỗ trợ CHMOD thư mục được 101, nếu Server của bạn hỗ trợ cái này thì hãy sử dụng nó, vì biện pháp CHMOD này rất an toàn, đến ngay cả Owner cũng ko thể xem được cấu trúc Folder ngay cả khi vào FTP. Hiện tôi chỉ thấy có Server của Eshockhost.net là hỗ trợ cái này

– Thay đổi cấu trúc, tên file mặc định có chứa các thông tin quan trọng . Nếu có thể hãy thay đổi cả cấu trúc CSDL nếu bạn làm được .

– Thiết lập các tường lửa truy cập Admin mà ko sử dụng đến CSDL, mã hóa User/Pass thì càng tốt, ngoài ra có hệ thống kiểm tra tác vụ của MOD, Admin … nếu quyền hạn xác nhận mới được thực hiện (cái này Matrix sử dụng rất thành công) .

Trên đây là hướng dẫn từng bước giúp các bạn cố gắng chống Local attack, dù sao đây cũng chỉ là hướng dẫn cơ bản, trong quá trình thực hiện, các bạn nên linh động hơn một chút, nếu có thêm ý tưởng gì mới thì hãy cùng nhau thảo luận tại đây.

Advertisements

Tối ưu hóa hiệu suất máy chủ Apache

Việc tối ưu hóa hiệu suất của máy chủ Apache có thể tạo nên sự khác biệt về website của bạn và ấn tượng mà nó tạo ra, đặc biệt trên các site động. Trong bài này chúng tôi sẽ giới thiệu cho các bạn những vấn đề cơ bản trong cấu hình và cài đặt, hai lĩnh vực mà bạn có thể kiểm soát để tối ưu hóa hiệu suất của máy chủ Apache.

Việc đánh giá và cải thiện hiệu suất

Apache được thiết kế để có được tốc độ nhanh ở mức có thể. Mặc dù vậy, khi các site trở nên phức tạp và nhu cầu băng thông của kiểu kết nối khác nhau tăng lên, khi đó việc có được hiệu suất tốt nhất trong một cài đặt Apache và website trở thành một vấn đề quan trọng.

Việc nâng cao hiệu suất không có nghĩa là thực hiện những thay đổi để đạt được những thành quả không đáng kể. Việc tiêu tốn hàng giờ hoặc thậm chí nhiều ngày vào việc điều chỉnh một máy chủ cho một vài phần trăm là hành động lãng phí thời gian. Vì vậy, bước đầu tiên là bạn cần phải xác định máy chủ đang hoạt động của mình nhanh đến cỡ nào và mức hiệu suất nói chung của nó ra sao để có thể cải thiện hiệu suất và đánh giá được những thay đổi của mình.

Đây không phải là lần đầu tiên chúng tôi giới thiệu về việc test Apache. Như được lưu ý ở trên, việc xác định thành phần nào trong các ứng dụng web đang gây ra vấn đề – đặc biệt việc phân biệt xem liệu Apache hoặc môi trường ứng dụng mà bạn đang sử dụng với các site động là rất khó khăn. Việc nhận ra các vấn đề trong các ứng dụng động vượt ra ngoài phạm vi của bài này, tuy nhiên chúng tôi sẽ giới thiệu cho các bạn một số cách để cải thiện nói chung tốc độ của Apache và cách nó tương tác với các thành phần khác để hỗ trợ một website như thế nào.

Phần cứng máy chủ

Máy tính và môi trường hệ điều hành mà Apache đang chạy có ảnh hưởng lớn nhất. Rõ ràng rằng, một máy tính 386 cũ sẽ không thể cho hiệu suất tốt bằng một máy tính P4 hoặc dual-processor, tuy nhiên bạn có thể thực hiện một số cải thiện cho nó. Để tránh thay đổi phần cứng, thứ lớn nhất mà bạn có thể thực hiện là bảo đảm Apache đang chạy trên một máy chủ chuyên dụng. Thêm vào đó sự tồn tại các ứng dụng khác cũng ảnh hưởng đáng kể tới hiệu suất của máy chủ web.

Trong hầu hết các tình huống, đặc biệt là các website tĩnh, số lượng RAM là một hệ số quan trọng vì nó sẽ ảnh hưởng đến lượng thông tin mà Apache có thể nhớ (cache). Càng nhiều thông tin được cache thì hiệu suất của Apache trong việc xử lý mở và đọc một file nào đó trên đĩa sẽ càng thấp đi. Nếu site dựa trên hầu hết các file tĩnh, khi đó nên xem xét đến việc sử dụng mod_cache; nếu có khá nhiều RAM, khi đó bạn có thể cân nhắc đến mod_mem_cache.

Việc lưu thông tin vào đĩa trước đây tạo một khác biệt đáng kể nếu site dựa trên mod_include để xây dựng lên một trang. Với mod_mem_cache, các thông tin được lưu trong heap nhớ được chia sẻ bởi tất cả các quá trình của Apache.

Sử dụng đĩa tốc độ cao sẽ tốt hơn, giải pháp Redundant Array of Inexpensive Disks (RAID) là một trong những giải pháp được lựa chọn (RAID 0, 0+1, 5, 10, hoặc 50) sẽ cải thiện được tốc độ truy cập đến các file được phục vụ.

Mặc dù vậy cần lưu ý nếu bạn bị sự cố ở một truyến nào đó, thì một giải pháp phần cứng thay thế cho phần mềm là lựa chọn tốt nhất.

Cuối cùng, về mặt phần cứng, hiệu suất CPU có thể có sự ảnh hưởng trên các site động với các overhead phụ cho việc thực thi ứng dụng cho mỗi trang được truy cập. Các trang động thường yêu cầu CPU cao hơn.

Môi trường host

Không quan tâm đến hệ điều hành, bạn hãy sử dụng nguyên lý tối ưu dưới đây:

  • Giữ các ứng dụng background ở mức tối thiểu. Nếu bạn thực sự quan tâm đến vấn đề hiệu suất thì trước tiên cần phải xem xét đó là một số quá trình hoạt động ở chế độ background. Cho ví dụ, trong Unix, bạn nên tắt NFS, các dịch vụ in ấn và thậm chí cả sendmail nếu không cần thiết. Trong Windows, sử dụng System control panel để tối ưu hóa hệ thống cho các ứng dụng và cache hệ thống, tối ưu hệ thống về hiệu suất. Chỉ cần bảo đảm rằng các ứng dụng và các dịch vụ yêu cầu như MySQL vẫn đang chạy.
  • Tránh sử dụng hệ thống. Nếu bắt đầu biên dịch các ứng dụng, chỉnh sửa file hay sử dụng máy thì chắc chắn hiệu suất phục vụ web của máy sẽ giảm. Do đó nếu bạn phải chỉnh sửa các thành phần hoặc cài đặt phần mềm, hãy xây dựng hoặc chỉnh sửa các thành phần trên máy tính khác sau đó copy chúng sau.
  • Cần cập nhật liên tục hệ thống. Dẫu ý tưởng xuất phát từ quan điểm bảo mật nhưng việc nâng cấp phần mềm và cập nhật các bản vá cũng cải thiện đáng kể hiệu suất vào ra và hiệu suất mạng.

Ứng dụng Apache

Rõ ràng Apache cũng là một ứng dụng. Do đó đầu tiên cần bảo đảm nó được xây dựng đúng chỉ với các modul và các thành phần mở rộng cho các website. Điều đó có nghĩa rằng, cho ví dụ, bạn có thể bỏ qua các model ghi lại nếu không cần thiết. Lợi ích chủ yếu của việc đó là giảm được tải bộ nhớ, nhưng một lợi ích tốt nữa là bạn không thể kích hoạt vô tình các tùy chọn và do đó làm giảm hiệu suất máy chủ.

Tĩnh và động

Khả năng linh hoạt là vấn đề chủ yếu của hầu hết các quản trị viên Apache, tuy nhiên khả năng linh hoạt có giá của nó. Việc sử dụng các modul được load động bên trong Apache sẽ tạo sự thuận tiện nhưng chúng cũng ảnh hưởng đến hiệu suất, vì mã sẽ được nạp khi modul yêu cầu. Các modul động cũng có ưu điểm trong việc giữ cho các yêu cầu bộ ở thấp.

Để xây dựng một chế độ tĩnh, sử dụng kịch bản cấu hình và chỉ định các modul mà bạn muốn, tuy nhiên không chỉ định chia sẻ (chẳng hạn như sử dụng enable-rewrite mà không sử dụng –enable-rewrite=shared, hay sử dụng tùy chọn chia sẻ –enable-so).

Cấu hình modul

Nếu đang sử dụng cấu hình tĩnh của Apache, hãy chọn các modul mà bạn muốn hợp nhất để chăm sóc. Sử dụng chế độ tĩnh cũng phải trả giá – càng nhiều modul thì càng tốn nhiều bộ nhớ. Như vậy, một modul đa xử lý có thể sẽ có hiệu quả đáng kể trên các yêu cầu bộ nhớ của máy.

Lưu ý rằng có một số mục được đưa vào tự động, vì vậy bạn cần kích hoạt một cách rứt khoát và vô hiệu hóa các modul cần thiết. Cũng cần nhớ gộp các modul của các hãng thứ ba (chẳng hạn như thẩm định, PHP hoặc mod_perl), các yêu cầu dịch vụ web. Sử dụng cấu hình –help để có được danh sách các tùy chọn có sẵn.

Cấu hình máy chủ

Khi môi trường của bạn được thiết lập và ứng dụng Apache của bạn được tối ưu, đây chính là lúc bạn để ý đến file cấu hình để có những điều chỉnh tối ưu mạnh mẽ hơn. Một cách tốt là bắt đầu bằng cách dọn dẹp file để chỉ thị (directive) được giới hạn ở con số vài trăm bằng cách remove các chú thích. Ngoài ra, nó sẽ trở thành việc remove các thành phần không cần thiết hoặc các thành phần không cung cấp các lợi ích đích đáng.

Đơn giản hóa file cấu hình

Bước đầu tiên để tối ưu hóa là đơn giản hóa file cấu hình. Tuy sẽ không có những tiến bộ rõ nét về hiệu suất nhưng nó sẽ làm cho file cấu hình trở nên dễ dàng hơn trong sư dụng và vì vậy bạn sẽ tránh được trường hợp bỏ sót chỉ thị hoặc thành phần cần thay đổi.

Nếu thực hiện bất kỳ kiểu tối ưu nào, hãy bắt đầu với một trong các file cấu hình được cung cấp mặc định. Các file mày thường được lưu trong thư mục cấu hình Apache dưới tên httpd.conf.orig hoặc httpd-std.conf. Không nên sử dụng file high performance-std.conf; về lâu dài nó không thực sự hữu ích như những gì bạn nghĩ khi bắt đầu thêm vào một số lượng lớn các thông tin cấu hình bổ sung. Mặt khác, nếu mục tiêu của bạn là một máy chủ web tĩnh, tốc độ thì đây chắc chắn là cách dễ dàng nhất để bạn thực hiện được điều đó.

Nếu biết các chỉ thị cấu hình Apache, hoặc sẵn lòng nghiên cứu tài liệu, bước hiệu quả nhất và nhanh nhất mà bạn nên làm là remove tất cả các comment từ file cấu hình, vì chúng thường làm giảm uy tín các chỉ thị thực. Bạn cũng có thể remove các tham chiếu đến các hệ thống MPM hiện không sử dụng trên platform đã chọn.

Vô hiệu hóa các thành phần và hệ thống

Giờ đây chúng ta đã có một file cấu hình đơn giản, hãy bắt đầu remove các thành phần cấu hình cho các hệ thống hiện không sử dụng. Cụ thể như:

  • HostnameLookups, thành phần thường sẽ thêm overhead vào mỗi yêu cầu bằng cách yêu cầu tra cứu DNS trên máy khách, đầu tiên quan sát để tìm tên từ địa chỉ IP, sau đó tra cứu để chắc chắn thông tin đó không bị nhầm. Trong hầu hết các trường hợp, bạn có thể đơn giản vô hiệu hóa. Nếu thường xử lý với các file bản ghi của mình, bạn hãy sử dụng post-processing để xác định thông tin. Để vô hiệu hóa các tra cứu, nhóm chỉ thị dưới đây HostnameLookups off.
  • Symbolic links, đây là thành phần khi kích hoạt, sẽ làm cho Apache kiểm tra mọi yêu cầu để xác định xem liệu một liên kết tượng trưng có liên quan trong yêu cầu hay không. Trừ khi bạn thực sự cần đến các liên kết tượng trưng này, bằng không hãy tắt bỏ bằng cách  sử dụng: :<Directory /> Options -FollowSymLinks </Directory>
  • Server status and info, đây là một thành phần mặc dù rất hữu dụng khi test và kiểm tra máy chủ, nhưng nó sẽ tạo thêm overhead cho máy chủ web. Vô hiệu hóa bằng cách tìm kiếm các chỉ thị SetHandler server-status, và nếu có thể, remove modul từ Apache khi bạn cấu hình ứng dụng trong suốt quá trình xây dựng.
  • Wildcards và các tùy chọn linh hoạt cần được tránh nếu bạn có thể. Cho ví dụ, chỉ thịDirectoryIndex, sẽ chỉ thị rõ ràng danh sách các file được cấu hình, luôn liệt kê lựa chọn phù hợp nhất đầu tiên.
  • CGI execution cần có trừ khi bạn có một lý do tốt nào đó không thực hiện như vậy. Đặt tất cả các file CGI vào một thư mục và cấu hình nó cho thực thi CGI. Điều này sẽ tránh cho Apache có gắng xác định xem yêu có phải quả thực cho thành phần CGI hay không hay là một file tĩnh nào đó.

Vô hiệu hóa bản ghi

Việc ghi thông tin bản ghi là một quá trình tiêu tốn khá nhiều thời gian. Mặc dù vậy Apache luôn để mở tính năng này, do đó nó sẽ ngốn nhiều thời gian của máy chủ. Nếu việc lưu các thông tin bản ghi là không cần thiết, bạn có thể tiết kiệm được một vài chu trình xử lý bằng cách vô hiệu hóa nó. Để thực hiện điều này, hãy ghi chú các dòng bản ghi trong file cấu hình.

Nếu bạn quyết định giữ các bản ghi của mình, vô hiệu hóa HostnameLookups (xem bên trên) và bảo đảm copy các thông tin bản ghi ra một máy khác để phân tích các file.

Đơn giản hóa cấu hình mức thư mục

Các file .htaccess là các file rất hữu dụng cho việc mở rộng các tham số cấu hình máy chủ Apache mà không cần phải chỉnh sửa file cấu hình chính mỗi khi bạn muốn thay đổi thứ gì đó. Tuy nhiên vấn đề ở đây là việc sử dụng chúng sẽ làm chậm máy chủ của bạn.

Đầu tiên, máy chủ phải quan sát xem liệu file .htaccess có tồn tại hay không, sau đó nó phải phân tích cú pháp và xử lý các thành phần này trước khi sử dụng cấu hình cho thư mục đang được nói đến. Tồi tệ hơn, Apache phải xác định thông tin này không chỉ cho thư mục hiện hành mà còn cho cả các thư mục cha và sau đó phải tạo những thay đổi dựa trên nội dung của tất cả các file này.

Mặc dù vậy, nếu muốn tối đa hóa hiệu suất, bạn nên vô hiệu hóa việc sử dụng các file .htaccess. Bất cứ cấu hình thư mục cụ thể nào cũng đều có thể đi vào file cấu hình chính, nơi nó có thể được phân tích cú pháp một lần bởi Apache khi máy chủ bắt đầu.

Để vô hiệu hóa .htaccess thêm chỉ thị AllowOverride None và các phần <Directory>.

Cấu hình MPM

Multi-Processing Module (MPM) cho phép một nền tảng cụ thể có thể quản lý nhiều kết nối đồng thời. Các modul MPM cụ thể cho từng nền tảng. Các giải pháp có sẵn làm việc một cách đặc trưng với Unix, Windows, BeOS và NetWare. Với một số nền tảng thường có nhiều sự lựa chọn. Đối với hầu hết người dùng, cấu hình mặc định cho môi trường cụ thể nào đó làm việc khá tốt, đặc biệt khi việc có được các tham số chính xác có thể là một nhiệm vụ tốn thời gian. Bằng cách so sánh, nhiều kỹ thuật đã được mô tả có thể mang lại hiệu suất tốt hơn, tuy nhiên khi muốn có được hiệu suất tối đa cho máy chủ của mình thì bạn vẫn phải điều chỉnh cấu hình.

Dưới hầu hết các nền tảng chỉ có MPM, Unix có hai tùy chọn prefork và worker. MPM preforkchia ra một số các quá trình Apache giống nhau, còn worker tạo ra nhiều thread. Nói chung,prefork tốt hơn trên các hệ thống với một hoặc hai bộ vi xử lý, nơi các hệ điều hành hỗ trợ tốt hơn cho việc cắt nhỏ thời gian giữa các quá trình. Trên hệ thống có số lượng CPU cao hơn, mô hình thread chắc chắn sẽ hiệu quả hơn.

Trong gần như tất cả các trường hợp, chỉ thị MaxClients là hiệu quả nhất cho việc tăng hiệu suất máy chủ, vì nó kiểm soát số lượng tối đa các kết nối đồng thời mà máy chủ Apache có thể quản lý.

Tối ưu hóa các thành phần tĩnh

Nếu website của bạn sử dụng rất nhiều thành phần tĩnh, hoặc nếu bạn tách các thành phần động và tĩnh trên hai hoặc nhiều máy chủ web thì mục tiêu chính của bạn sẽ là cải thiện thời gian đáp trả mà Apache gửi trả lại các thông tin đã được yêu cầu. Cách đơn giản nhất để thực hiện điều này là sử dụng modul mod_cache. Bạn có thể sử dụng modul này với mod_disk_cache vàmod_mem_cache để cung cấp cache bộ nhớ và đĩa của các file tĩnh.

Kiểm tra tài liệu Apache trên modul mod_cache để có thêm thông tin chi tiết hơn.

Tối ưu hóa các thành phần động

Các thành phần động chắc chắn sẽ là thành phần tiêu tốn thời gian nhất cho bất cứ máy chủ web nào. Chúng, đặc biệt nếu bạn sử dụng CGI, sẽ làm tăng thêm thời gian đáp trả để load và thực thi một ứng dụng đơn giản. Có nhiều thông tin bổ sung để các bạn có thể tham khảo tại mod_perl,PHP, và Python và Java.

Ưu điểm chính của các giải pháp dựa trên kịch bản là chúng được nhúng một bộ thông dịch vào Apache, giúp remove vấn đề loading ban đầu cho các kịch bản động. Một số thậm chí còn lưu kịch bản đã được phân tích để dễ dàng được thực thi nếu có yêu cầu sau này.

Toi uu apache

Cấu hình có thể phức tạp và việc có được hệ thống chính xác có thể tốn nhiều thời gian. Một số giải pháp cũng không làm việc tốt chẳng hạn như giải pháp mong đợi với các host ảo, bạn sẽ cần phải thay đổi các kịch bản nào đó để lợi dụng các cải tiến về tốc độ mà nó cung cấp.

Mặc dù vậy những cải tiến ở đây rất đáng kể, có thể giảm được 70% thời gian thực thi đối với một kịch bản Perl bằng cách sử dụng mod_perl thay cho CGI. Thậm chí khi có nhiều công việc hơn, các giải pháp này cũng cho phép bạn giữ được các kết nối vững chắc với cơ sở dữ liệu hoặc có thể lưu trữ các thông tin giữa các yêu cầu. Đây là một điều tuyệt vời cho các site thương mại điện tử và cũng góp phần giảm overhead trong việc load các thông tin giữa các yêu cầu.

Kết luận

Dù Apache là một ứng dụng có thể cấu hình và khá phức tạp nhưng thực sự thú vị vì các cài đặt chuẩn của nó đạt được mức hiệu suất rất cao. Một lĩnh vực mà ở đó bạn có thể dễ dàng cải thiện đáng kể hiệu suất bằng cách điều chỉnh các tham số. Tuy nhiên không may thay, những tham số mà bạn có ít kiểm soát bên trong Apache –ví dụ như các thành phần động và các kịch bản CGI – lại là các tham số có ảnh hưởng lớn nhất về mặt hiệu suất. Kiểm ta một máy chủ Apache điển hình, bạn sẽ thấy rằng thời gian cho ứng dụng Apache để trả lời một kết nối và gửi dữ liệu trở lại chỉ vài ms – tuy nhiên việc đợi cho nguồn dữ liệu đó có thể mất đến vài giây.

Tuy nhiên điều này không phải là việc chúng tôi nhấn mạnh hành động tối ưu là vô nghĩa. Trong suốt quá trình làm việc một hàng thì số lượng ms sẽ ngày một tăng lên. Quan trọng hơn nữa là bạn có thể làm sạch và đơn giản hóa cấu hình Apache của mình từ đó giúp nó giảm được các overhead quản trị hơn trong quá trình thực hiện.