Bài giảng Web server - Apache

Web Client. Là những chương trình duyệt Web ở phía người dùng, như Internet Explorer, Netscape Communicator., để hiển thị những thông tin trang Web cho người dùng. Web client sẽ gửi yêu cầu đến Web Server. Sau đó, đợi Web Server xử lý trả kết quả về cho Web client hiển thị cho người dùng. Tất cả mọi yêu cầu đều được xử lý bởi Web Server.

ppt33 trang | Chia sẻ: vietpd | Lượt xem: 2886 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Bài giảng Web server - Apache, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
WEB SERVER - APACHE NỘI DUNG Giới thiệu về Web server. Giới thiệu Apache. Cài đặt Apache. Cấu hình Apache cơ bản. Cấu hình Apache nâng cao. Những tập tin Log. 1. GIỚI THIỆU VỀ WEB SERVER. Giao thức HTTP (HyperText Transfer Protocol). HTTP là một giao thức cho phép Web browsers và Web Servers cĩ thể giao tiếp với nhau. Nĩ chuẩn hố các thao tác cơ bản mà một Web Server phải làm được. HTTP là giao thức đơn giản giống như với các giao thức chuẩn khác của Internet, thơng tin điều khiển được truyền dưới dạng văn bản thơ thơng qua kết nối TCP. Web Server và cách hoạt động. Web Server có thể phục vụ các tài liệu HTML dưới dạng siêu văn bản gồm: văn bản, hình ảnh, âm thanh, phim,… Đầu tiên xét Web server ở mức độ cơ bản thì nĩ phục vụ các nội dung tĩnh. Nghĩa là khi Web server nhận 1 yêu cầu lấy trang Web sau từ Web browser: thì nĩ sẽ ánh xạ (map) Uniform Resource Locator (URL) trên vào một file cục bộ trên máy server. GIỚI THIỆU VỀ WEB (TT). GIỚI THIỆU VỀ WEB (TT). a) Mô hình hoạt động của Web Server. Chấp nhận kết nối. Sinh ra các nội dung tĩnh hoặc động cho Web browser. Đĩng kết nối. Chấp nhận kết nối. Lặp lại quá trình trên ... Mặc dù mơ hình này hoạt động, nĩ vẫn cần phải thiết kế lại để phục vụ được nhiều người trong cùng 1 lúc. Web servers cĩ xu hướng tận dụng ưu điểm của 2 phương pháp khác nhau để giải quyết vấn đề này: đa tiểu trình (multi-threading) hoặc đa tiến trình (multi-processing) hoặc các hệ lai giữa multi-processing và multi-threading. GIỚI THIỆU VỀ WEB (TT). b) Địa chỉ URL (Uniform Resource Locator). Được dùng để truy xuất mọi dịch vụ thông tin của Web server từ Web Browser. Ta cần phải chỉ rõ loại nghi thức, địa chỉ hay tên và số port của loại dịch vụ đó. Trên các trình duyệt web, thông tin này được xác định bằng địa chỉ URL với dạng tổng quát sau: Method://Host.Subdomain.Domain/ + Method: cho biết loại dịch vụ được sử dụng. Ví dụ như http để truy xuất WWW, ftp để truy xuất FTP, .... + Host.subdoamin.domain: cho biết tên hay địa chỉ IP của máy chủ cần truy xuất. Ví dụ www-math.hcmuns.edu.vn hay 172.29.2.20 Lưu ý : Đối với dịch vụ WWW ta có thể bỏ qua thành phần Method:// chỉ cần nhập vào thành phần Host.Subdomain.Domain. Còn đối với dịch vũ FPT thì phải nhập đầy đủ các thành phần trên. GIỚI THIỆU VỀ WEB (TT). c) Các file tài liệu HTML là một văn bản thô (raw text). WWW Trường Đại Học Khoa Học Tự Nhiên TP.HCM GIỚI THIỆU VỀ WEB (TT). Web Client. Là những chương trình duyệt Web ở phía người dùng, như Internet Explorer, Netscape Communicator.., để hiển thị những thông tin trang Web cho người dùng. Web client sẽ gửi yêu cầu đến Web Server. Sau đó, đợi Web Server xử lý trả kết quả về cho Web client hiển thị cho người dùng. Tất cả mọi yêu cầu đều được xử lý bởi Web Server. GIỚI THIỆU VỀ WEB (TT). Web động. - Một trong các nội dung động (thường gọi tắt là Web động) cơ bản là các trang Web được tạo ra để đáp ứng các dữ liệu nhập vào của người dùng trực tiếp hay gián tiếp. - Cách cổ điển nhất và được dùng phổ biến nhất cho việc tạo nội dung động là sử dụng Common Gateway Interface (CGI). Cụ thể là CGI định nghĩa một cách thức Web server chạy một chương trình một cách cục bộ và trả kết quả thông qua Web server đến Web browser của người dùng đã yêu cầu nội dung động. - CGI về cơ bản là một giao thức mở rộng của Web Server. GIỚI THIỆU VỀ WEB (TT). Hình vẽ sau minh hoạ khi Web browser yêu cầu một trang Web động phát sinh từ một chương trình CGI. 2. GIỚI THIỆU APACHE. Apache là một phần mềm có nhiều tính năng mạnh và linh hoạt dùng để làm Webserver. Hỗ trợ đầy đủ những giao thức HTTP trước đây như HTTP/1.1 Có thể cấu hình và mở rộng những module. Cung cấp source code đầy đủ với license không hạn chế. Chạy trên nhiều hệ điều hành như Windows NT/9x, Netware 5.x, OS/2 và trên hầu hết các hệ điều hành Unix, Linux. 3. CÀI ĐẶT APACHE. Ta có thể download apache từ website chính sau: Có 2 cách cài đặt apache: a) Cài đặt Apache từ source. b) Cài đặt Apache từ pakage rpm. #rpm –ivh httpd.version.i386.rpm CÀI ĐẶT APACHE (tt). Các tập tin và thư mục cấu hình của Apache: /etc/httpd/conf/httpd.conf : đây là một tập tin cấu hình chính hết sức quan trọng cho Apache server. /etc/httpd/modules: chứa các module của Web Server. /etc/httpd/logs: chứa log file của Apache. /var/www/html: chứa các trang Web. /var/www/cgi-bin: chứa các script sử dụng cho trang Web. Khởi động Apache : #/etc/init.d/httpd stop #/etc/init.d/httpd start #/etc/init.d/httpd restart 4. CẤU HÌNH APACHE CƠ BẢN. Các thông số cấu hình cơ bản trong tập tin /etc/httpd/conf/httpd.conf như sau: a) Định nghĩa Server. ServerName Ví Dụ: ServerName www.soft.com ServerAdmin Ví Dụ: ServerAdmin root@soft.com ServerType Qui định cách nạp chương trình, có hai cách: inetd : chạy từ hệ thống. standalone : chạy từ các init level. Ví Dụ: ServerType standalone CẤU HÌNH APACHE CƠ BẢN (tt). b) Vị trí thư mục root. DocumentRoot Ví Dụ: DocumentRoot /usr/web Một yêu cầu sẽ đưa vào trang Web /usr/web/index.html ServerRoot Mặc định: ServerRoot /usr/local/apache ErrorLog Ví Dụ: ErrorLog /var/logs/httpd/error_log DirectoryIndex VD: DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi CẤU HÌNH APACHE CƠ BẢN (tt). c) Cấu hình mạng. MaxClients Ví Dụ: MaxClients 256 Listen Ví Dụ: Listen 80 Listen Ví Dụ: Listen 172.29.7.225:80 TimeOut Ví Dụ: TimeOut 300 KeepAlive MaxKeepAliveRequests KeepAliveTimeout BindAddress CẤU HÌNH APACHE CƠ BẢN (tt). d) Ánh xạ đường dẫn cục bộ (Alias). Alias dùng để ánh xạ đường dẫn cục bộ (không nằm trong DocumentRoot) thành đường dẫn http. Cú pháp: Alias Ví Dụ: Alias /doc /pub/data Thì khi truy cập sẽ quy vào đường dẫn cục bộ là /pub/data. Cĩ thể kết hợp với Directory directive Ví dụ: Alias /doc /pub/data AuthType Basic AuthName intranet AuthUserFile /etc/httpd/passwd Require user hally tom Allow from internal.com CẤU HÌNH APACHE CƠ BẢN (tt). e) Tạo homepage cho user (UserDir). Cho phép người dùng tạo home page của mình trên Server. Ví Dụ: Userdir www Order deny,allow Allow from all Trong home directory của người dùng tạo thư mục www, thay đổi quyền truy cập trên home directory bằng cách thêm quyền “x” cho tất cả mọi người. #chmod 755 /home Khi đó cú pháp truy cập từ Web Browser có dạng như sau: Ví Dụ: 5. CẤU HÌNH APACHE NÂNG CAO. Sự chứng thực (Authentication). Đối với những thông tin cần bảo mật, khi có yêu cầu truy xuất thông tin này, WebServer phải chứng thực những yêu cầu này có hợp lệ hay không. Thông tin chứng thực thường bao gồm: username và password. Có hai loại chứng thực: + Basic Authentication. + Digest Authentication. CẤU HÌNH APACHE NÂNG CAO (tt). a) Basic Authentication. Khi đó, username và password mà bạn đã cung cấp chỉ có tác dụng trong lần giao dịch của Web Browser với Web Server lúc đó. Nếu lần sau truy cập lại website này, bạn phải nhập lại username và paswword. Cấu hình chứng thực sẽ trải qua các bước sau: + Tạo tập tin lưu password của người dùng. + Tạo tập tin group. (có thể bỏ qua) + Cấu hình Apache. CẤU HÌNH APACHE NÂNG CAO (tt). + Tạo tập tin lưu password của người dùng. Dùng lệnh htpasswd có cú pháp như sau: #htpasswd –c - Chương trình sẽ yêu cầu bạn nhập vào password, và sau đó nhập lại một lần nữa. - Tuỳ chọn -c sẽ tạo tập tin password mới. Nếu tập tin này đã tồn tại nó sẽ xoá nội dung cũ và ghi vào nội dung mới. - : thông thường nó tạo tại thư mục chứa tập tin cấu hình Apache /etc/httpd/conf CẤU HÌNH APACHE NÂNG CAO (tt). + Tạo tập tin group. Nhằm tạo điều kiện thuận lợi cho người quản trị trong việc quản lý chứng thực, Apache hỗ trợ tính năng nhóm người dùng. Dạng tổng quát của tập tin group: : + groupname: tên nhóm. + user list: danh sách các thành viên trong nhóm (phân cách nhau bởi khoảng trắng). Ví Dụ: admin: adm1 adm2 adm3 CẤU HÌNH APACHE NÂNG CAO (tt). + Cấu hình Apache. Sau khi tạo tập tin password và group, cấu hình chứng thực của Apache, được thiết lập với những chỉ dẫn sau: AuthType Basic AuthName [tên_chứng_thực] AuthUserFile [vị_trí_tập_tin_password] AuthGroupFile [vị_trí_tập_tin_group] Require user [tên_user1] [tên_user2] . . . Require group [tên_nhóm1] [tên_nhóm2] . . . Option Indexes (hiển thị những file dạng khác html) CẤU HÌNH APACHE NÂNG CAO (tt). b) Digest Authentication. Digest Authentication cung cấp một phương pháp bảo vệ nội dung web một cách luân phiên. Server sẽ cấp cho Client một thẻ chứng thực để bảo vệ website, thẻ này được gọi là realm (vùng lãnh thổ). Web Browser sẽ lưu lại username và password mà bạn đã cung cấp cùng với realm. Việc lưu trữ này chỉ có tác dung trong giao dịch hiện hành của Browser. Nhưng cũng có một vài Browser cho phép lưu chúng một cách cố định. Các bước thực hiện tương tự như Basic Authentication. CẤU HÌNH APACHE NÂNG CAO (tt). + Tạo tập tin lưu password của người dùng. Dùng lệnh htdigest có cú pháp như sau: #htdigest –c - Chương trình sẽ yêu cầu bạn nhập vào password, và sau đó nhập lại một lần nữa. - Tuỳ chọn -c sẽ tạo tập tin password mới. Nếu tập tin này đã tồn tại nó sẽ xoá nội dung cũ và ghi vào nội dung mới. - : thông thường nó tạo tại thư mục chứa tập tin cấu hình Apache /etc/httpd/conf CẤU HÌNH APACHE NÂNG CAO (tt). + Tạo tập tin group. Dạng tổng quát của tập tin group: : + groupname: tên nhóm. + user list: danh sách các thành viên trong nhóm (phân cách nhau bởi khoảng trắng). Ví Dụ: admin: adm1 adm2 adm3 CẤU HÌNH APACHE NÂNG CAO (tt). + Cấu hình Apache. Sau khi tạo tập tin password và group, cấu hình chứng thực của Apache, được thiết lập với những chỉ dẫn sau: AuthType Digest AuthName [tên_chứng_thực] AuthUserFile [vị_trí_tập_tin_password] AuthGroupFile [vị_trí_tập_tin_group] Require user [tên_user1] [tên_user2] . . . Require group [tên_nhóm1] [tên_nhóm2] . . . Option Indexes (hiển thị những file dạng khác html) CẤU HÌNH APACHE NÂNG CAO (tt). Điều khiển truy cập (Access Control). Ngoài việc bảo vệ nội dung website bằng sự chứng thực, Apache còn giới hạn việc truy cập của người dùng dựa trên những thông tin khác. a) Allow và Deny. Dùng để cấm hay cho phép việc truy cập tài nguyên dựa trên tên máy hoặc địa chỉ IP. Cú pháp: Allow/Deny from [Address] + Allow: cho phép. + Deny: cấm. + Address: địa chỉ IP/đường mạng hay tên máy. Ví Dụ: Allow from 172.29.11.100 CẤU HÌNH APACHE NÂNG CAO (tt). Có thể sử dụng Order để kết hợp giữa Allow và Deny trong việc giới hạn truy cập. Nếu thứ tự của Order là Deny, Allow thì Deny được kiểm tra trước và bất kỳ những client nào không phù hợp với Deny hoặc phù hợp với một Allow thì được phép truy cập. Nếu thứ tự của Order là Allow,Deny thì Allow được kiểm tra trước tiên và bất kỳ client nào không phù hợp với một điều kiện Allow hoặc phù hợp với một điều kiện Deny thì bị cấm truy cập đến server. CẤU HÌNH APACHE NÂNG CAO (tt). b) Satisfy. Được dùng để chỉ ra nhiều tiêu chuẩn cần phải được xem xét trong việc bảo mật nội dung website. Cú pháp: Satisfy Statisfy có 2 giá trị: all (mặc định) và any. + Giá trị all: nếu nhiều tiêu chuẩn được chỉ ra thì tất cả những tiêu chuẩn này phải thoả mãn thì người dùng được phép truy cập tài nguyên. + Giá trị any: nếu nhiều tiêu chuẩn được chỉ ra, một trong những tiêu chuẩn này hợp lệ thì người dùng được phép truy cập tài nguyên. CẤU HÌNH APACHE NÂNG CAO (tt). Tạo Virtual Host. Đây là tính năng của Apache nhằm giúp chúng ta duy trì nhiều hơn một Web Server trên một máy tính. Chúng ta có hai loại Virtual Host: + IP-based Virtual Hosting: sử dụng những địa chỉ IP khác nhau cho từng domain. + Named-based Virtual Hosting: nhiều domain chia sẻ trên một địa chỉ IP. CẤU HÌNH APACHE NÂNG CAO (tt). Ví Dụ: Cấu hình virtual host bằng IP-based Virtual host. ServerAdmin webmaster@net.com DocumentRoot /home/www/net ServerName www.net.com ServerAdmin webmaster@soft.com DocumentRoot /home/www/soft ServerName www.soft.com CẤU HÌNH APACHE NÂNG CAO (tt). Ví dụ: Cấu hình virtual host bằng Named-based Virtual host. NameVirtualHost 203.162.40.1 ServerAdmin webmaster@net.com DocumentRoot /home/www/net ServerName www.net.com ServerAdmin webmaster@soft.com DocumentRoot /home/www/soft ServerName www.soft.com 6. NHỮNG TẬP TIN LOG. Apache có nhiều tập tin log khác nhau nhằm ghi nhận lại những hoạt động của Web Server. Gồm các tập tin sau: /var/log/httpd/access_log /var/log/httpd/error_log /var/log/messages