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
48 trang |
Chia sẻ: lylyngoc | Lượt xem: 1712 | Lượt tải: 1
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