Web back-end (3) - Web server

1.1       Web server

1.1.1       Web server là gì?

Như đã biết, ứng dụng web hoạt động theo mô hình client-server. Trong mô hình này, web server đóng vai trò là “server”, có nhiệm vụ tiếp nhận, xử lý và trả lời các yêu cầu (request) từ client, quá trình trao đổi giữa client và server được thực hiện bằng giao thức HTTP.

Vậy, web server là phần mềm, hoặc phần cứng đóng vai trò là máy phục vụ (server) trong mô hình client-server, có nhiệm vụ tiếp nhận, xử lý và trả lời các yêu cầu (request) từ client, thông qua giao thức HTTP và một số giao thức liên quan khác.

Chức năng quan trọng nhất của web server là lưu trữ, xử lý và phân phối nội dung web đến trình duyệt của người dùng. Nội dung web bao gồm mã HTML, CSS, JavaScript, hình ảnh, âm thanh, video.

Web server không chỉ phục vụ trong hệ thống web, mà nó còn được nhúng, hay tích hợp trong các thiết bị khác, ví dụ như trong máy in, bộ định tuyến (router), bộ phát sóng không dây (WR), webcam. Trong trường hợp này, web server đóng vai trò là một phần của hệ thống, dùng để cấu hình, theo dõi và quản lý thiết bị.

Với công nghệ SOAP và REST (web services), web server còn đóng vai trò là thành phần cung cấp dịch vụ web cho các máy tính khác, thông qua giao tiếp máy-máy.

Quan sát hình sau để thấy được vai trò của thành phần web server trong một hệ thống web.


Để có một web server, bạn chỉ cần cài đặt phần mềm web server lên một máy tính bất kỳ. Tuy nhiên, để có một web server thực thụ thì cần phải chuẩn bị một máy tính server có cấu hình đủ mạnh, trên đó có cài hệ điều hành server, và cuối cùng là cài đặt một phần mềm web server lên hệ điều hành đó.

Danh sách một số phần mềm web server được sử dụng nhiều và thị phần (tham khảo năm 2021, nguồn wikipedia).

Phần mềm web server

Nhà cung cấp

Thị phần

Nginx

Nginx

34,54%

Apache

Apache

26,32%

IIS

Microsoft

6,5%

OpenResty

OpenResty

6,36%

Cloudflare server

Cloudflare

5%

1.1.2       Cài đặt phần mềm web server

Để hiểu rõ hơn về web server, phần này sẽ thực hiện cài đặt minh họa một trong các phần mềm web server, đó là Apache.

Apache có tên gọi đầy đủ là Apache HTTP Server, là một phần mềm web server, hoạt động trên hầu hết các hệ điều hành (ví dụ: Windows, Unix, Linux, Novell Netware).

Một số đặc điểm của Apache:

– Là phần mềm miễn phí, mã nguồn mở

– Ổn định, có độ tin cậy cao

– Dễ cấu hình

– Đa nền tảng

– Gặp vấn đề về hiệu năng nếu ứng dụng web có lượng truy cập cực lớn

– Là lựa chọn phù hợp cho các đơn vị kinh doanh vừa và nhỏ

Cài đặt

[Xem thêm hướng dẫn cài đặt: https://www.youtube.com/watch?v=oJnCEqeAsUk]

– Vào trang web của Apache https://httpd.apache.org/, chọn mục Download,  bấm vào mục “Apache httpd for Microsoft Windows is available from a number of third party vendors.” để chọn bản cho Windows.

– Chọn bản Apache Lounge, chọn bản 64 bit hoặc 32 bit tùy theo máy tính của bạn       

(Ví dụ: httpd-2.4.48-win64-VS16.zip, kích thước khoảng 10MB)

– Giải nén tập tin vừa tải xuống, chép thư mục Apache24 vào ổ đĩa C:\

– Mở chương trình dòng lệnh (CMD)

– Trong CMD, chuyển tới thư mục C:\Apache24\bin

– Gõ lệnh httpd -k install để cài đặt Apache dưới dạng một dịch vụ

C:\Apache24\bin>httpd -k install

Installing the 'Apache2.4' service

The 'Apache2.4' service is successfully installed.

Testing httpd.conf....

Errors reported here must be corrected before the service can be started.

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::5d5d:1c20:557f:e928. Set the 'ServerName' directive globally to suppress this message

– Sau khi cài đặt Apache thành công, mở cửa sổ services của Windows để kiểm tra xem có chưa, và khởi chạy Apache (Chuột phải vào dịch vụ Apache2.4, chọn Start). Trong cửa sổ Services, để ý cột Status, nếu một dịch vụ đang chạy thì giá trị tại cột này sẽ là running.

– Mở cửa sổ trình duyệt, gõ vào đường dẫn http://127.0.0.1, Enter, nếu trên trình duyệt xuất hiện dòng chữ “It works!” là bạn đã cài đặt được Apache.

Gỡ bỏ Apache

– Mở chương trình dòng lệnh (CMD)

– Trong CMD, chuyển tới thư mục C:\Apache24\bin

– Gõ lệnh httpd -k uninstall để gở bỏ Apache

Các lỗi thường gặp khi cài đặt và chạy Apache

Khi cài đặt và chạy Apache thường gặp 2 lỗi phổ biến:

– Một là cài đặt phiên bản không phù hợp với hệ điều hành, ví dụ bạn đang sử dụng hệ điều hành Windows phiên bản 32bit nhưng lại tải và cài đặt phiên bản 64bit. Cách khắc phục là tải lại phiên bản Apache phù hợp với hệ điều hành.

– Hai là tình huống tranh chấp cổng. Tình huống này xảy ra khi bạn đã cài đặt Apache thành công, tuy nhiên, khi khởi chạy (start) dịch vụ Apache thì không thể chạy được. Lý do là khi chạy Apache cần sử dụng tới cổng 80 (cho HTTP) và 443 (cho HTTPS); nếu hai cổng này đã bị một chương trình hay dịch vụ nào đó trên máy tính chiếm mất thì nó sẽ không thể khởi chạy được. Giải pháp là cấu hình Apache sử dụng cổng khác với 80 và 443; hoặc tắt các chương trình/service đang sử dụng cổng 80 và 443. Bạn có thể vào Task Manager > Services để kiểm tra và tắt các dịch vụ sau:

+ World Wide Web Publishing Service (WWW-Publishing Service)

+ Web Deployment Agent Service

+ Skype

+ SQL Server Reporting Service(MSSQLSERVER)

+ VMware Workstation

+ IIS

– Ngoài hai lỗi trên, chúng ta cũng có thể gặp các lỗi khác khi chạy Apache. Để biết chi tiết lỗi, chúng ta có thể xem trong phần ghi nhật ký của Windows (Windows Logs) bằng tiện ích Event Viewer.

1.1.3       Xem và đọc thêm

– [1] Web server (read): https://en.wikipedia.org/wiki/Web_server

– [2] Web server (read): https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server

– [3] Install Apache: https://www.youtube.com/watch?v=oJnCEqeAsUk

1.1.4       Bài tập và thực hành

Bài tập 1. Cài đặt web server Apache trên Windows (tùy chọn làm thêm trên: Ubuntu, Docker)

https://www.youtube.com/watch?v=oJnCEqeAsUk

Sau khi cài đặt thành công Apache, trả lời các câu hỏi và làm thêm các yêu cầu sau:

­– Trong Apache, thư mục web root (hay document root) có tên là gì?

– Mặc định, các trang web, hay các tập tin của một website được để ở đâu?

– Web server này có thể thực thi mã PHP chưa?

– Thư mục logs để làm gì?

– Tùy chỉnh tập tin index.html (thêm mã HTML, CSS, JavaScript) và xem kết quả trên trình duyệt

– Sử dụng tab Elements của Developer Tools để quan sát cây DOM, mã HTML, CSS và JavaScript

– Sử dụng tab Network của Developer Tools để quan sát HTTP request, HTTP response nhằm hiểu thêm quá trình giao tiếp giữa web client và web server

Bài tập 2. Cài đặt web server Nodejs

Đọc và làm theo hướng dẫn trong web site này (mục đích để làm quen với Nodejs, học cách làm việc chuyên nghiệp, tăng khả năng đọc hiểu tiếng Anh).

https://nodejs.org/en/

Bài tập 3. Cài đặt NGINX

Bài tập 4. Cài đặt XAMPP (làm thêm, không bắt buộc)

[Gợi ý cho các bài tập]

Bài tập 1.

Thêm CSS, JavaScript vào tập tin index.html

<html>

<head> <style> h1 { color: red; } </style> </head>

<body>

            <h1>It works! hi cu teo</h1>

<script> alert('hi cu Ti'); </script>

</body></html>

Web root (hay document root) của Apache là htdocs, mặc định các website sẽ được lưu trữ ở đây.

Để kiểm tra xem web server này đã thực thi được mã PHP chưa: trong htdocs, tạo tập tin index1.php với mã nguồn như sau:

<?php

    echo "hi PHP";

?>

Mở trình duyệt, nhập vào đường dẫn http://127.0.0.1/index1.php

– Nếu trên trình duyệt xuất chữ “hi PHP” là web server đã thực thi được mã PHP

– Ngược lại, nếu trình duyệt xuất toàn bộ mã nguồn “<?php echo "hi PHP"; ?>” có nghĩa là web server chưa thể thực thi (thông dịch) được mã PHP.

Bài tập 2. Cài đặt web server Nodejs

Cài đặt phần mềm Nodejs

– Vào trang https://nodejs.org/en/, tải Nodejs về máy

– Bấm đúp chuột vào tập tin vừa tải về để cài đặt (ví dụ tập tin: node-v14.17.6-x64.msi), để đơn giản, trong các bước cài đặt sẽ để chế độ lựa chọn mặc định, chỉ bấm Next, OK và Finish.

– Quá trình cài đặt Nodejs sẽ thiết lập luôn biến môi trường PATH, do vậy có thể sử dụng chương trình dòng lệnh (cmd) để nhập lệnh cho Nodejs thực thi ở mọi vị trí.

– Để kiểm tra cài đặt Nodejs được hay chưa, trong cửa sổ dòng lệnh nhập lệnh node –v để xem phiên bản của Nodejs. Hoặc vào thư mục C:\Program Files\ sẽ thấy thư mục nodejs.

C:\Users\Maxsys>node -v

v14.17.6

Cài đặt web server Nodejs

Sử dụng lệnh npm install -g http-server để cài đặt một web server Nodejs trên máy cục bộ. (lưu ý trong quá trình cài đặt, máy tính phải có kết nối internet).

Ví dụ:

C:\Users\Maxsys>npm install -g http-server

C:\Users\Maxsys\AppData\Roaming\npm\http-server -> C:\Users\Maxsys\AppData\Roaming\npm\node_modules\http-server\bin\http-server

+ http-server@13.0.1

added 29 packages from 39 contributors in 15.519s

Tạo một website đơn giản

– Vào ổ đĩa bất kỳ (D:\), tạo một thư mục (mywebsite), tạo tập tin index.html với nội dung sau:

<html><body><h1>Xin chao Nodejs</h1></body></html>

Khởi chạy web server Nodejs

Trong cửa sổ dòng lệnh (CMD), vào thư mục có chứa website (D:\mywebsite), gõ lệnh http-server để khởi chạy web server Nodejs.

(có thể Windows sẽ bật thông báo cho phép chạy JavaScript, chọn Allow)

Ví dụ:

D:\mywebsite>http-server

Starting up http-server, serving ./

 

http-server settings:

CORS: disabled

Cache: 3600 seconds

Connection Timeout: 120 seconds

Directory Listings: visible

AutoIndex: visible

Serve GZIP Files: false

Serve Brotli Files: false

Default File Extension: none

 

Available on:

  http://172.31.128.1:8080

  http://192.168.56.1:8080

  http://192.168.32.1:8080

  http://192.168.136.1:8080

  http://192.168.8.113:8080

  http://127.0.0.1:8080

Hit CTRL-C to stop the server

Vậy là web server Nodejs đang chạy.

Truy cập web server Nodejs từ trình duyệt

Mở trình duyệt, nhập vào địa chỉ sau:

http://127.0.0.1:8080

hoặc http://192.168.8.113:8080/

Nếu xuất hiện dòng chữ  Xin chao Nodejs là được.

Tắt web server Nodejs

Mở cửa sổ dòng lệnh mà web server Nodejs đang chạy, bấm tổ hợp phím Ctrl+C.

Bài tập 3. Cài đặt NGINX

– Vào trang Google, gõ từ khóa tìm kiến nginx for windows

­– Vào đường dẫn “http://nginx.org › docs › windows”

(Hoặc vào trực tiếp trang https://nginx.org, chọn mục download)

– Chọn và tải về máy tính, phiên bản nginx/Windows-1.21.3

– Giải nén và chép thư mục nginx-1.21.3 về ổ đĩa C:\, đổi tên thư mục thành nginx cho gọn

– Vào thư mục nginx, bấm đúp chuột vào tập tin nginx.exe để khởi chạy web server

– Mở cửa sổ Task manager, kiểm tra để đảm bảo tiến trình (process) nginx đã chạy

Lưu ý: chưa hiểu tại sao, khi chạy nginx bằng cách bấm đúp chuột tại cửa sổ File Explorer thì nginx xuất hiện 2 tiến trình trong tab Processes và 2 tiến trình trong tab Details của Task manager; khi chạy nginx bằng cách gõ lệnh start nginx tại cửa sổ dòng lệnh thì xuất hiện 2 tiến trình nginx trong tab Details của Task manager. Để ý điều này để khi muốn kết thúc nginx thì phải kiểm tra ở trong cả 2 tab là Processes và Details.

– Mở trình duyệt, gõ vào đường dẫn http://localhost/, nếu xuất hiện trang Welcome to Nginx là được

1.1.5       Câu hỏi ôn tập

Câu 1. Câu nào phát biểu đúng nhất về client-side và server-side?

A. Client-side gồm các hoạt động tại trình duyệt, server-side gồm các hoạt động tại web server

B. Client-side gồm các hoạt động tại web server, server-side gồm các hoạt động tại trình duyệt

C. Client-side nhận yêu cầu từ web server, server-side gửi yêu cầu tới trình duyệt

D. Client-side gắn với máy chủ, server-side gắn với trình duyệt

Câu 2. Câu nào phát biểu đúng nhất về front-end và back-end?

A. Front-end gồm các xử lý tại máy server, back-end gồm giao diện và các xử lý tại giao diện của ứng dụng

B. Để làm phần front-end cần sử dụng một trong các ngôn ngữ C#, PHP, JavaScript, Ruby, Python

C. Front-end gồm giao diện và các xử lý tại giao diện của ứng dụng, back-end gồm các xử lý tại máy server

D. Để làm phần back-end có thể sử dụng các ngôn ngữ HTML, CSS, JavaScript

Câu 3. A web server is computer software and underlying hardware that accepts requests via______, the network protocol created to distribute web pages, or its secure variant HTTPS.

A. DNS

B. JavaScript

C. HTML

D. HTTP

Câu 4. Web root is the topmost _______in which the files making up a web site are located on a web server.

A. file

B. directory

C. server

D. protocol

Câu 5. Địa chỉ IP mặc định của web server, khi cài trên máy cục bộ là?

A. 127.0.0.0

B. 127.0.0.1

C. 8.8.8.8

D. 192.168.0.1

Câu 6. Tên miền mặc định của web server, khi cài trên máy cục bộ là?

A. webserver

B. root

C. webroot

D. localhost

-----

Video

Slide

-----

Cập nhật: 14/8/2023

-----

Bạn muốn tự học HTML bài bản? Xem thêm