Chương 10 Apache Web Server

World Wide Web (www): Là một phát minh nóng nhất của thế kỷ 20, sau Ti Vi. Nó đem đến cho hàng tỷ người trên thế giới có thể giao tiếp thông qua Internet. Người dùng chỉ cần đơn giản là “click & wait” thông tin trên màn hình thông qua 1 chương trình web client gọi là Browser

pdf48 trang | Chia sẻ: lylyngoc | Lượt xem: 1712 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chương 10 Apache Web Server, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Apache Web Server Web server  World Wide Web (www): Là một phát minh nóng nhất của thế kỷ 20, sau Ti Vi. Nó đem đến cho hàng tỷ người trên thế giới có thể giao tiếp thông qua Internet. Người dùng chỉ cần đơn giản là “click & wait” thông tin trên màn hình thông qua 1 chương trình web client gọi là Browser  Ở khía cạnh khác, ta có Web Server, thiết bị phục vụ thông tin cho hàng ngàn web clients. Web server chứa các trang Web, scripts, chương trình, các multimedia files và phục vụ chúng dùng HTTP, một giao thức dùng riêng cho việc truyền file đến các web browsers. Các kỹ thuật chính của Web  Hệ thống địa chỉ, Universal Resource Locators (URLs), cho phép tải về các loại thông tin khác nhau trên Internet  HyperText Transfer Protocol (HTTP) định nghĩa một ngôn ngữ (protocol) của việc làm thế nào để web clients và servers có thể trao đổi thông tin multimedia  HperText Markup Language (HTML) cho phép users biên soạn multimedia hypertext documents  TCP/IP protocol phục vụ ở mức thấp trên Internet cho phép HTTP và các ứng dụng khác chạy trên nó. Call Stack Vai trò Web Server  Web server chỉ có 1 ít vai trò trong data được hiển thị như thế nào trên client. Ngoại trừ việc dùng XML+ứng dụng. Thông thường, web server truyền thông tin và browser phải dùng nó cho thích hợp.  Web server cũng có thể thực thi chương trình để sinh ra thông tin động. Ta gọi là xử lý server- side để sinh ra các trang Web tương tác. (Khác với JavaScript, sinh ra xử lý client-side xử lý tương tác web pages). Web server có thể tạo ra các ứng dụng dùng các form. Nó cho phép web server đóng vai trò 1 gateway để truy cập vào các tài nguyên khác không thuộc Webserver như là local file systems, database, mainframe data, v.v…. Các Web Servers Software Java Web Server Apache Web Server Microsoft Personal Web Server Microsoft Frontpage Web Server Microsoft Internet Information Server Web Server Overview  Web Server không chỉ là 1 máy tính lớn nằm đâu đó trong phòng server với năng lực xử lý lớn và nhiều memory.  Web Server = Computer Hardware + Operating System + Web Server Software + Info Content  Với góc độ software engineer, ta sẽ tập trung vào software, do đó, Web Server là:  Web Server = Operating System + Web Server Software + Info Content Các thành phần chính  Operating System: (Windows, UNIX, AS/400, Mainframe) nơi mà web server chạy.  Web Server Software là 1 deamon luôn đợi và phục vụ yêu cầu từ web client thông qua mạng.  Web server phải hiểu request từ clients. Protocol được dùng bởi Web server là Hypertext Transfer Protocol (HTTP). Khái niệm quan trọng nhất là TCP port. Web Server thường sử dụng port 80, tuy nhiên điều này có thể thay đổi tuỳ theo admin cấu hình  Nội dung, là thông tin chứa trong web server. Nó có thể là thông tin trong localhost hoặc từ database hoặc từ các server khác Web Server truyền thống  Web Server truyền thống không hiểu nội dung của tài liệu. Nói cách khác, tất cả tài liệu xem như là 1 stream of data từ server đến client. Thông thường, web server không biết hyper links nằm trong documents, links chỉ là 1 phần của document từ cái nhìn của web server. Khi user clicks vào hyperlink, browser sẽ request document khác từ hyperlink. Do đó, browser “quản lý" hyperlink thay vì web server.  Ngoài ra, web server không biết về các images, movie hay voice pieces. Tất cả các MIME được requested riêng lẻ từ browser. Document Tree  documents, images, và các thông tin khác mà web server phải phục vụ được tổ chức thành 1 cây hay một dạng cấu trúc phân cấp. Gốc của cây là điểm bắt đầu với các node con (hay node) theo sau nó. Chú ý rằng Web tree thường khác với different local file system tree. Web Document Tree File System Tree  (Using mc) Information Type  Việc cố gắng xem 1 tập tin audio như là 1 image sẽ không thành công, cũng như xem ASCII text như là image cũng thế. Browser phải biết tàiliệu dạng gì để hiển thị cho đúng  Trước tiên, web server sẽ gửi một header thông tin và nói với client rằng loại thông tin nào đang đến  Content-type: application/postscript  Content-encoding: gzip  Ta gọi nó là Content-type MIME info Extension Contents  .html, .htm HTML document  .txt Unformatted ASCII  .ps PostScript  .gif GIF image  .mpeg MPEG image  .wrl, vrml VRML scene description  .class Java applet  ....etc ... ... etc ... Giới thiệu HTTP Overview  HTTP định nghĩa một ngôn ngữ request- response đơn giản  Web client thiết lập kết nối với web server dùng HTTP.  HTTP định nghĩa câu truy vấn và đáp ứng sẽ như thế nào  HTTP không định nghĩa làm thế nào mà kết nối được thiết lập hay làm thế nào dữ liệu được truyền đi; điều này được làm bởi các lower-level protocols như là TCP/IP Client Request  Một HTTP request gồm các điều sau:  Phương pháp (method)  Universal Resource Identifier (URI):tên của thông tin yêu cầu which is the name of the information request  Protocol version  Optional supplemental information HTTP method  GET: Trả về object; lấy thông tin  HEAD: Chỉ trả về thông tin của object, chứ không phải là object  POST: Gửi thông tin đến để lưu lên server. Nhiều server không cho phép thông tin được POST lên ngoại trừ đó là input của 1 scripts  PUT: Gửi 1 phiên bản mới của 1 object đã có lên server. Nhiều servers không cho phép documents được PUT.  DELETE: Xoá object. Giống như PUT, method này bị cấm bởi hầu hết các servers Ví dụ  [root@alibaba root]# telnet www.hcmutrans.edu.vn 80  Trying 203.162.44.49...  Connected to www.hcmutrans.edu.vn.  Escape character is ' ]^'.  GET /index.html HTTP/1.0  HTTP/1.1 200 OK  Date: Tue, 02 Dec 2003 14:39:26 GMT  Server: Apache/1.3.28 (Unix) PHP/4.3.3  Last-Modified: Fri, 24 Oct 2003 19:27:08 GMT  ETag: "272dff-2c1c-3f997d0c"  Accept-Ranges: bytes  Content-Length: 11292  Connection: close  Content-Type: text/html   Welcome to hcmutrans Website  <META content="text/html; charset=windows- Header Field Description  User-Agent: Loại browser, IE, Netscape  If-Modified-Since: Hỏi nếu object đuợc yêu cầu là mới. Nhằm giảm chi phí đường truyền  Accept: Kiều MIME (Mulitpurpose Internet Mail Extensions) và dạng của thông tin mà browser phải chuẩn bị để tiếp nhận  Authorization: User password hay các kiểu authentication được yêu cầu Server Response  Một HTTP response bao gồm:  Dòng trạng thái chỉ ra thành công hay thất bại của request  Mô tả thông tin trong response.  Thông tin thực sự được yêu cầu Status line có dạng  HTTP-version: Version của HTTP  Status-code: con số chỉ ra kết quả của request  Reason: Một câu giải thích ngắn về ý nghĩa của con số  Metadata (Metainformation) Chỉ cho browser biết để hiển thị thông tin HTTP status code  200: Document follows. The request succeeded. The information requested follows.  301: Moved Permanently. The document has moved to a new URL  302: Moved Temporarily . The document has moved temporarily to a new URL  304: Not Modified. The document has not been modified since the date specified in a GET request with if-modified-since.  404: Not Found. The information could not be found or permission was denied. This error is returned if the requested URL does not exist or was misspelled  401: Unauthorized .The information is restricted; please retry with proper authentication.  402: Payment Required. The information requires paying a fee; please retry with proper payment (not used often)  403: Forbidden. Access is forbidden  500: Server Error. The server experienced an error Quá trình hoạt động HTTPD Quá trình hoạt động HTTPD 2 Quá trình hoạt động HTTPD 3 Quá trình hoạt động HTTPD 4 Quá trình hoạt động HTTPD 5 Apache Web Server  Istalling Apache  Configure Apache Web Server  Edit the parameter ServerName in httpd.conf  Port 80  Log Directory  DocumentRoot  Start httpd  /etc/rc.d/init.d/httpd start  $ApacheHome/bin/httpd -f $ApacheHome/etc/httpd.conf  Stop httpd  kill -TERM `cat /usr/local/apache/logs/httpd.pid` Config Apache Web Server  Editing httpd.conf  Using Webmin Common Gateway Interface (CGI)  CGI làmột giao diện với Web server cho phép bạn mở rộng chức năng của server. Dùng CGI bạn có thể tương tác với người dùng kết nối vào website của bạn. Ở mức độ lý thuyết, CGI cho phép bạn xử lý các thông tin mà người dùng nhập từ các form trên browser và trả về kết quả dựa trên dữ liệu nhập. Ở cấp độ thực hành, CGI là 1 giao diện cho phép lập trình viên có thể viết chương trình trên Web Tại sao dùng CGI ?  CGI cung cấp một giải pháp linh hoạt và đơn giản để giải quyết các vấn đề này. CGI định nghĩa một chuẩn để chương trình gia tiếp với Web server.  Giao tiếp CGI được xử lý bởi standard input và output, có nghĩa là nếu bạn biết làm thế nào để in và đọc data dùng ngôn ngữ lâậ trình, bạn có thể viết một ứng dụng trên Web server. Cài đặt CGI trên Unix Server  Path to scripting languages like Perl, Tc #!/usr/bin/perl  Configuration for Server ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin AddType application/x-httpd-cgi .cgi Option Indexes FollowSymLinks ExecCGI Sample CGI program  #!/usr/bin/perl print "Content-type: text/html\n\n"; print " \n"; print "CGI Environment\n"; print "\n"; print "\n"; print "CGI Environment\n"; foreach $env_var (keys %ENV) { print "$env_var = $ENV{$env_var}\n"; } print " \n"; Dùng SSI-Server Side Include  Khi server thực thi CGI, một trình biên dịch hay thông dịch sẽ thực chương trình của bạn. Chương trình CGI phải sinh ra một vài đáp ứng HTTP và sau đó tác vụ của HTML file server's là sinh ra đáp ứng và truyền những trang HTML được sinh ra ngược trở lại client/browser.  Khi server trả về tập tin với SSI commands trong nó, nó phải đọc từng dòng và tìm ra các cú pháp lệnh đặc trưng SSI. Đây gọi là parsing a file. Lệnh SSI có thể xuất hiện bất kỳ nơi nào trong HTML file.. Ví dụ một SSI   This is the Home Virtual Page   Welcome to SSI Page   This file was last mondified on     Kết quả của SSI Cú pháp của SSI  Mỗi lệnh SSI có cùng dạng sau: config Sets the time, size, or error-message format echo Inserts the values of SSI variables into your Web page. exec Executes a system command or a CGI program and inserts the output of that command into a Web page flastmod Inserts into your Web page the date of the last time a file was modified. fsize Inserts the size of a file into your Web page Include Inserts the contents of HTML files into your Web page Apache Web Server  Apache là một HTTP-server được sử dụng rộng rãi nhất trên thế giới hiện nay. Nó còn là một web server phổ biến nhất cho các hệ thống Linux. Một web server như Apache có các chức năng đơn giản, đồng thời hiển thị các yêu cầu về HTML từ các client yêu cầu. Đây là một dịch vụ vô cùng mạnh mẽ cho các browser client có thể yêu cầu các kết nối HTTP. Có thể hiểu một Apache server hoạt động như hình minh hoạ: CẤU HÌNH SỬ DỤNG APACHE SERVER  Việc hiệu chỉnh tập tin cấu hình của dịch vụ Apache cung cấp cho nhà quản trị nhiều lựa chọn tùy thuộc vào yêu cầu của hệ thống và người dùng trên hệ thống đó. Có hệ thống chỉ cần cài đặt Apache cho mục đích là phục vụ cho nhu cầu hiển thị thông tin hệ thống một cách tĩnh, một số hệ thống khác thì mong muốn cài đặt với mục đích là thương mại điện tử.  + tập tin cấu hình chính “/etc/httpd/conf/httpd.conf” : đây là một tập tin cấu hình hết sức quan trọng cho Apache server. Nó cho phép nhà quản trị có thể cấu hình nhiều tùy chọn khác nhau, đồng thời nó cho phép nhà quản trị có thể cấu hình các bảo mật trên hệ thống đối với các dịch vụ này. Khởi động và dừng Apache  /etc/init.d/httpd start  /etc/init.d/httpd stop  /etc/init.d/httpd restart Cấu hình Apache cơ bản  Kiểm tra file /etc/httpd/conf/httpd.conf có các khai báo sau:  ServerName pascal.hcmutrans.edu.vn.  ServerAdmin webmaster@hcmutrans.edu.vn  Listen *:80  Port 80  Sau đó start lên bằng lệnh  /etc/init.d/httpd start Cấu hình User’s Personal Home Pages  Kiểm tra file /etc/httpd/conf/httpd.conf có các khai báo sau: Options Indexes MultiViews AllowOverride All Allow from from all Order allow,deny Cấu hình miền Web ảo  Apache cho phép cấu hình nhiều domain trên cùng 1 server, listen trên cùng 1 port  Ưu điểm: Tận dụng được tài nguyên trên Server. Giảm chi phí quản trị, tăng cường khả năng web-hostting  Ví dụ minh hoạ: Dùng 1 server để cấu hình cho 3 website: • • • Các bước cấu hình  Cấu hình DNS server cho 3 miền trên cùng chỉ về 1 Host. Trong file hcmutrans.edu.vn.zone cần thêm các dòng sau: www IN A 172.16.10.1 ity IN A 172.16.10.1 tainguyen IN A 172.16.10.1  Cấu hình Apache Web Server ServerName www.hcmutrans.edu.vn  NameVirtualHost 172.16.10.1   ServerName www.hcmutrans.edu.vn  ServerAdmin webmaster@hcmutrans.edu.vn  ErrorLog logs/hcmutrans-error_log  CustomLog logs/hcmutrans-access_log common  ServerName tainguyen.hcmutrans.edu.vn   ServerName tainguyen.hcmutrans.edu.vn  ServerAdmin webmaster@hcmutrans.edu.vn  ErrorLog logs/tainguyen-error_log  CustomLog logs/tainguyen-access_log common  ServerName ity.hcmutrans.edu.vn   ServerName ity.hcmutrans.edu.vn  ServerAdmin webmaster@hcmutrans.edu.vn  ErrorLog logs/ity-error_log  CustomLog logs/ity-access_log common 