VIỆN ĐẠi học mở HÀ NỘi khoa công nghệ thông tin đỒ Án tốt nghiệP ĐẠi họC



tải về 0.74 Mb.
trang5/10
Chuyển đổi dữ liệu23.07.2016
Kích0.74 Mb.
#2197
1   2   3   4   5   6   7   8   9   10

1.6.Webserver Apache


Apache hay chương trình máy chủ HTTP (Webserver) là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành tương tự Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác. Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng web thế giới (tiếng Anh: World Wide Web)

Khi dược phát hành lần đầu, Apache là chương trình máy chủ mà nguồn mở duy nhất có khả năng cạnh tranh với chương trình máy chủ tươn tự của Netscape Communications Corporation mà ngày nay được biết đến qua tên Sun JavaSystem Web Server. Từ đó trở đi, Apache đã không ngừng tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chương trình máy chủ khác về mặt hiệu suất và tính năng phong phú. Từ tháng 4 năm 1996, Apache trở thành môt chương trình máy chủ HTTP thông dụng nhất. Hơn nữa, Apache thường được dùng để so sánh với các phần mềm khác có chức năng tương tự. Tính đến tháng 1 năm 2007 thì Apache chiếm đến 60% thị trường các chương trình phần phân phối trang web. Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation. Apache được phát hành với giấy phép Apache License và là một phần mềm tự do và miễn phí.

Chúng tôi giới thiệu Apache vì cổng thông tin điện tử của Bộ Kế hoạch và Đầu tư sử dụng Apache làm webserver, không thể xây dựng hệ thống phòng thủ cho MPIPortal khi không nghiên cứu hệ thống này. Có nghĩa là phần mềm nguồn mở Apache được giới thiệu ở đây như là một thành phần của hệ thống mã nguồn mở được sử dụng trong bảo mật MPIPortal chứ không phải được giới thiệu dưới góc độ là một phần mềm bảo mật nguồn mở.

1.6.1.Mô tả cụ thể của lõi Apache


Tất cả các tập tin hình thành cốt lõi Apache được nhóm lại trong thư mục chính. Các nhà thiết kế của Apache muốn nhiều tính năng của máy chủ web có thể được thực hiện như những phân hệ riêng biệt và do đó có nhiều tương tác giữa các tiểu hợp phần của lõi Apache. Ý tưởng này nhằm mục đích để một ai đó mở rộng Apache không cần phải sửa đổi bất cứ điều gì trong lõi. Tiểu hợp phần duy nhất mà có thể cần thay đổi để mở rộng các máy chủ là một trong đó thực hiện các giao thức HTTP (mà là một phần của lõi). Mặc dù các giao thức HTTP là một tiểu hợp phần riêng biệt của lõi, cũng không có định nghĩa API.

Hình 3.14. Minh họa mô tả lõi Apache


1.6.2.Các module chuẩn:


Để có đầy đủ chức năng, Apache cài đặt mặc đinh một số module tiêu chuẩn. Những module này không phải được nạp tự động, các modules có thể được kết nối với lõi hoặc có thể được biên dịch như phần riêng biệt được nạp động. Ngoại trừ các module kết nối luôn được cài sẵn khi khởi động thì bất kỳ một modules nào cũng có thể cài để nạp tự động.

Khi các kịch bản cấu hình đặc biệt là chạy một tệp có đuôi .c, file modules.c tự động tạo ra trong thư mục gốc của mã nguồn. Modules.c định nghĩa mảng đặc biệt của con trỏ tới các cấu trúc module, được gọi là ap_prelinked_modules [] đối với các module được liên kết với lõi và module * ap_preloaded_modules [] cho những module d ta tự cài đặt. Điều thú vị là ngay cả mod_core, đó là cấu trúc module được xác định bởi các thành phần http_code,c với các tiểu thành phần được liệt kê trong mảng tạo ra trong modules.c.

Lưu ý rằng một module có thể xác định xử lý của nhiều giai đoạn. Và mod_core đã được bao gồm:


No

Phase

Modules

1

filename translation

mod_alias.c
mod_userdir.c
mod_core

2

check_user_id

mod_auth.c

mod_auth_anon.c

mod_auth_db.c

mod_auth_dbm.c

mod_digest.c


3

check auth

mod_auth.c

mod_auth_anon.c

mod_auth_db.c

mod_auth_dbm.c

mod_digest.c


4

check access

mod_access

5

type_checker

mod_mime.c

mod_mime_magic.c

mod_negotiation.c

mod_core


6

fixups

mod_alias.c

mod_cern_meta.cmod_env.c

mod_expires.c

mod_headers.c

mod_negotiation.c

mod_speling.c

mod_usertrack.c

mod_core


7

content handlers

mod_actions.c

mod_asis.c

mod_autoindex.c

mod_cgi.c

mod_dir.c

mod_imap.c

mod_include.c

mod_info.c

mod_negotiation.c

mod_status.c

mod_core


8

logger

mod_log_agent.c

mod_log_config.c

mod_log_referer.c


Hình 3.15. Bảng Mod_Core

1.6.3.Tối ưu Apache


Môi trường host

Không quan tâm đến hệ điều hành, 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 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, 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 ta 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 đảm bảo nó được xây dựng đúng với các module và các thành phần mở rộng ho các website. Điều đó có nghĩa rằng, cho ví dụ, ta có thể bó qua các model ghi 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à ta 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 module đượ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 module yêu cầu. Các module động cũng có ưu điểm trong việc giữ cho các yệu cầu ở mức 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 module mà ta 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 module

Nếu đang sử dụng cấu hình tĩnh của Apache, hãy chọn các module phù hợp để sử dụng. Sử dụng chế độ tĩnh cũng phải trả giá – càng nhiều module thì càng tốn nhiều bộ nhớ. Như vậy, khi một module đ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 cần kích hoạt một cách dứt khoát và vô hiệu hóa các module cần thiết. Cũng cần nhớ gộp các module của các hãng thứ ba, 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ó cập.

Cấu hình máy chủ

Khi môi trường được thiết lập và ứng dụng Apache tối ưu. Đây là lúc ta để ý đến file cấu hình để có những điều chỉnh mạnh mẽ hơn. Một cách hay 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 hoá 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 ta sẽ tránh được trường hợp bỏ sots các 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 dầ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 http-std.conf. Không nên sử dụng file high performance-std.còn; về lâu dài nó không thực sự hữu ích như những gì ta 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 ta là một máy chủ web tĩnh, tốc dộ thi đây chắn chắn là cách dễ dàng nhất để ta thực hiện được điều đó.

Nếu biết các lệnh 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à ta 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 mức độ tin cậy của các chỉ thị thực. Ta cũng có thể remove các tham chiếu đến 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 của hệ thống

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



      • HostnameLookups: thành phần thường sẽ thêm overhead vào mỗi 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, 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, 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 dâ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 ta 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: Options – FollowSymLinks

      • 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, vo hiệu hóa bằng cách ìm kiếm các chỉ thị SetHandler server-status, và nếu có thể, remove module từ Apache khi ta cấu hình ứng dung trong suốt quá trình xây dựng.

      • Wildcards và các tùy chon linh hoạt cần được tránh nếu 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 jee lựa chọn phù hợp nhất đầu tiên.

      • CGI excution cần có trừ khi 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ầu đó có phải quả thực cho thành phần CGI 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, 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 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 hinh mức thư mục:

Các file .htaccess là các file rất hữu dung 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 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ủ.

Đầ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ưc 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, 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ị AllowOverried None và các phần .

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 module 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 đinh 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ì 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 prefork chia 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 một hoặc hai bộ vi xử lý, nơi các hệ điều hành hỗ trwoj 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ắn 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 sử dụng rất nhiều thành phần tĩnh, hoặc nếu ta 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 ta 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 module mod_cache. Ta có thể sử dụng module này với mod_disk_cache để cung cấp 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 module 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. Đặc biệt nếu ta sử dụng CGI, chúng 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ó 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à 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 thực thi nếu có yêu cầu sau này.

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 với các host ảo, 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 yêu cầu cần xử lý, các giải pháp này cũng cho phép 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. Day 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.

Như vậy, dù Apache là một ứng dụng có thể cấu hình 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à ở đó ta 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à ta 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 một máy chủ Apache điển hình, ta sẽ thấy rằng thời gin 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ố quá trình làm việc thì số lượng ms sẽ ngày một tăng lên. Quan trọng hơn nữa là ta 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 và giúp phần nào việc kiện toàn bảo mật cho hệ thống máy chủ dịch vụ web sử dụng webserver là Apache.



Каталог: books -> luan-van-de-tai -> luan-van-de-tai-cd-dh
luan-van-de-tai-cd-dh -> Thế kỷ 21, cùng với sự phát triển nh­ vũ bão của khoa học kỹ thuật, của công nghệ thông tin. Sự phát triển kinh tế tác động đến tất cả mọi mặt đời sống kinh tế xã hội
luan-van-de-tai-cd-dh -> Phần một : Tình hình thu hút vốn đầu tư trên thị trường vốn việt nam hiện nay
luan-van-de-tai-cd-dh -> TRƯỜng đẠi học cần thơ khoa công nghệ BỘ MÔN ĐIỆn tử viễn thôNG
luan-van-de-tai-cd-dh -> Em xin chân thành cảm ơn! Vị Xuyên, ngày 19 tháng 5 năm 2012 sinh viêN
luan-van-de-tai-cd-dh -> PHẦn I mở ĐẦu tầm quan trọng và SỰ ra đỜi của giấY
luan-van-de-tai-cd-dh -> Đề tài: Tìm hiểu về vấn đề sử dụng hợp đồng mẫu trong đàm phán ký kết hợp đồng mua bán ngoại thương và thực tiễn ở Việt Nam
luan-van-de-tai-cd-dh -> Đề tài phân tích thực trạng kinh doanh xuất khẩu cà phê nhân của các doanh nghiệP
luan-van-de-tai-cd-dh -> Giao tiếp máy tính và thu nhận dữ liệU ĐỀ TÀI: TÌm hiểu công nghệ 4g lte
luan-van-de-tai-cd-dh -> TRƯỜng đẠi học văn hóa hà NỘi khóa luận tốt nghiệP

tải về 0.74 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   10




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương