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 
[email protected]
 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 
[email protected]
 ErrorLog logs/hcmutrans-error_log
 CustomLog logs/hcmutrans-access_log 
common
 
ServerName 
tainguyen.hcmutrans.edu.vn
 ServerName 
tainguyen.hcmutrans.edu.vn
 ServerAdmin 
[email protected]
 ErrorLog logs/tainguyen-error_log
 CustomLog logs/tainguyen-access_log 
common
ServerName ity.hcmutrans.edu.vn
 ServerName ity.hcmutrans.edu.vn
 ServerAdmin 
[email protected]
 ErrorLog logs/ity-error_log
 CustomLog logs/ity-access_log 
common