TRƯỜNG ĐẠI HỌC VĂN LANGKHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CUỐI KỲ MÔN HỌC CÁC NỀN TẢNG PHÁT TRIỂN PHẦN MỀM.
Khái ni m Web Server ệ
Web server là máy chủ web dùng để xử lý các yêu cầu từ trình duyệt web của khách hàng và gửi thông tin đến client thông qua giao thức HTTP hoặc các giao thức khác Một số web server phổ biến hiện nay bao gồm Apache, Nginx và IIS.
Hình 1 Mô t h th ng Web Serverả ệ ố
Máy chủ web (web server) là một phần mềm được cài đặt để xử lý và phục vụ các yêu cầu từ trình duyệt Khi nhận được các request từ trình duyệt, máy chủ web ngay lập tức gửi phản hồi đến client thông qua giao thức HTTP hoặc các giao thức khác Để thực hiện điều này, máy chủ web cần có dung lượng lớn và khả năng xử lý cao để lưu trữ và vận hành hiệu quả các kho dữ liệu trên Internet Thông qua các cổng giao tiếp riêng biệt, cấu hình máy chủ web được thiết lập nhằm đảm bảo hoạt động hiệu quả cho các hệ thống máy tính kết nối trên Internet.
Xây dựng máy chủ web server là một quy trình quan trọng nhằm đảm bảo hoạt động liên tục và ổn định, cung cấp dữ liệu thường xuyên cho mạng lưới máy tính Đây sẽ là nơi lưu trữ an toàn dữ liệu hoạt động trên internet, đồng thời được giao quyền quản lý hiệu quả.
Nh ng thành ph n chính quan tr ng c a Web Server ữ ầ ọ ủ
Ph n c ng c a Web Server ầ ứ ủ
Máy chủ (Server) là một loại máy tính chuyên dụng dùng để cung cấp dịch vụ web server và giao tiếp với các máy tính khách Máy chủ thường được trang bị bộ xử lý mạnh mẽ, bộ nhớ RAM lớn và có dung lượng lưu trữ cao, giúp quản lý dữ liệu hiệu quả và xử lý yêu cầu từ nhiều người dùng cùng một lúc.
Hệ điều hành (Operating System) là phần mềm cơ bản cho web server, thường chạy trên các nền tảng như Linux (ví dụ: Ubuntu, CentOS), Unix (ví dụ: FreeBSD) và Windows Hệ điều hành cung cấp các dịch vụ, giao diện người dùng và khả năng quản lý cần thiết cho hoạt động của web server.
Mạng và kết nối: Web server cần được kết nối vào mạng để truyền nhận dữ liệu qua giao thức TCP/IP Nó có thể được kết nối thông qua Ethernet, Wi-Fi hoặc các công nghệ mạng khác.
Ph m m m c a Web Server ầ ề ủ
Phần mềm máy chủ web là ứng dụng chạy trên máy chủ, có nhiệm vụ xử lý yêu cầu từ máy tính khách và phục vụ các tài nguyên web Một số phần mềm máy chủ web phổ biến bao gồm Apache HTTP Server, Nginx, Microsoft IIS và Lighttpd.
Web server cần hỗ trợ các ngôn ngữ lập trình và framework để xử lý logic của ứng dụng web Ví dụ, để phát triển các trang web động, web server cần hỗ trợ ngôn ngữ như PHP, Python, Node.js và các framework như Django, Flask, Ruby on Rails.
Máy chủ web thường tương tác với cơ sở dữ liệu để lưu trữ và truy xuất thông tin Điều này bao gồm các hệ quản trị cơ sở dữ liệu nổi bật như MySQL, PostgreSQL, MongoDB và các công nghệ tương tự.
Hình 2 Nh ng thành ph n chính quan tr ng c a Web Serverữ ầ ọ ủ
V i 2 ph n c ng và ph n m m này ta hoàn toàn có th xây d ng m t webớ ầ ứ ầ ề ể ự ộ server đ n gi n ho c c u kỳ ng d ng cho vi c nghiên c u, phát tri n, kinhơ ả ặ ầ ứ ụ ệ ứ ể doanh.
Ch c năng c a Web Server ứ ủ
Ch c năng c b n c a web server không th thi u là l u tr , x lý và phânứ ơ ả ủ ể ế ư ữ ử ph i n i dung website đ n v i khách hàng.ố ộ ế ớ
Xử lý dữ liệu qua giao thức HTTP cho phép cung cấp thông tin cho khách hàng thông qua máy tính cá nhân trên Internet Nội dung được chia sẻ trên máy chủ web bao gồm các định dạng HTML, các tệp style sheets, hình ảnh, và mã script hỗ trợ nội dung văn bản Khi bạn truy cập vào Bizfly.vn, máy chủ sẽ cung cấp cho bạn toàn bộ dữ liệu của trang web đó thông qua giao thức truyền tải.
K t n i linh ho t: Máy tính nào cũng có th là m t máy ch n u nó đế ố ạ ể ộ ủ ế ược cài đ t m t chặ ộ ương trình ph n m m server và có k t n i internet.ầ ề ế ố
Chương trình chuyển đổi thông minh cho phép người dùng cài đặt và hoạt động trên bất kỳ máy tính nào đáp ứng yêu cầu của họ Phần mềm web server tương thích với nhiều phần mềm khác, giúp tối ưu hóa hiệu suất và trải nghiệm sử dụng.
L u tr d li u trên hình th c thuê các máy ch nh , máy ch áo VPS ho cư ữ ữ ệ ứ ủ ỏ ủ ặ hosting.
Khi hoàn thành thiết kế website, bước tiếp theo là triển khai nó lên server để khách hàng có thể truy cập dễ dàng từ khắp nơi trên thế giới Một webserver chất lượng sẽ gia tăng hiệu quả hoạt động của website, giúp người dùng truy cập thông tin một cách nhanh chóng và thuận tiện.
Bizfly không chỉ cung cấp dịch vụ thiết kế website chuyên nghiệp mà còn mang đến cho doanh nghiệp gói sản phẩm Bizfly Cloud toàn diện, bao gồm cloud server, CDN, VPN và Simple Store Những giải pháp này giúp website của doanh nghiệp hoạt động hiệu quả và tối ưu hóa giá trị trong việc bán hàng trực tuyến.
Cách th c ho t đ ng c a Web Server ứ ạ ộ ủ
Để hiểu cách hoạt động của Web Server hay máy chủ web, trước tiên bạn cần nắm rõ cấu hình máy chủ Khi bạn muốn truy cập một trang web, trình duyệt của bạn sẽ gửi yêu cầu đến web server Web server sẽ tìm kiếm file được yêu cầu trên đĩa mà nó lưu trữ Sau khi tìm thấy file, máy chủ sẽ xử lý (nếu cần) và cuối cùng gửi nó đến trình duyệt của bạn Để tìm hiểu thêm về các bước này, hãy xem phần bên dưới.
Web server hoạt động dựa trên mô hình kiến trúc client-server, trong đó máy tính khách (client) gửi yêu cầu đến máy chủ (server) Máy chủ sẽ xử lý yêu cầu và trả về kết quả cho client.
Dưới đây là quá trình ho t đ ng c b n c a m t web server:ạ ộ ơ ả ủ ộ
Khi máy tính khách muốn truy cập vào một trang web, nó gửi yêu cầu tới địa chỉ IP của máy chủ thông qua giao thức truyền tải siêu văn bản (HTTP) Quá trình này bắt đầu bằng việc thiết lập kết nối TCP/IP giữa client và server.
Khi web server nhận được yêu cầu từ máy tính khách, nó sẽ xử lý yêu cầu đó bằng cách phân tích và xác định tài nguyên cần thiết để phục vụ yêu cầu, chẳng hạn như trang HTML, hình ảnh, hoặc tập tin Quá trình này cũng bao gồm việc xem xét các tham số liên quan đến yêu cầu.
Sau khi phân tích yêu cầu, web server sẽ tìm kiếm và truy cập tài nguyên tương ứng Quá trình này bao gồm việc xác định các tập tin cần thiết để cung cấp thông tin cho người dùng, đảm bảo rằng dữ liệu được xử lý và truyền tải một cách hiệu quả.
Web server sẽ xây dựng một response dựa trên yêu cầu và tài nguyên đã tìm kiếm Response này bao gồm mã trạng thái (status code) cho biết yêu cầu thành công hay thất bại, cùng với các thông tin header như loại nội dung, kích thước tập tin, và nội dung thực tế được trả về.
Cuối cùng, máy chủ web sẽ gửi phản hồi được xây dựng trước đó đến máy tính khách qua mạng Máy tính khách nhận phản hồi và hiển thị nội dung tương ứng cho người dùng.
Quá trình tương tác giữa máy khách và web server diễn ra liên tục, với web server xử lý đồng thời nhiều yêu cầu từ các máy tính khác nhau Ngoài ra, web server thường tích hợp các tính năng bảo mật, cấu hình và quản lý phiên để đảm bảo việc xử lý yêu cầu và tạo ra các trang web phức tạp hiệu quả.
Các Web Server thông d ng ụ
Dưới đây là m t s web server thông d ng mà ngộ ố ụ ười ta thường s d ng:ử ụ
Apache HTTP Server là một trong những máy chủ web phổ biến nhất trên thế giới, nổi bật với khả năng mở rộng cao, độ tin cậy và hỗ trợ nhiều tính năng linh hoạt Nó có thể chạy trên nhiều hệ điều hành như Linux, Unix, Windows và MacOS.
Nginx là một máy chủ web phổ biến và mạnh mẽ, được thiết kế để xử lý đồng thời nhiều yêu cầu với khả năng xử lý tối ưu Nginx thường được sử dụng làm proxy ngược (reverse proxy), bộ cân bằng tải (load balancer) cũng như máy chủ web chính.
Microsoft Internet Information Services (IIS) là máy chủ web được phát triển bởi Microsoft và hoạt động trên hệ điều hành Windows Nó tích hợp các công nghệ như ASP.NET và có khả năng quản lý dễ dàng thông qua giao diện người dùng thân thiện.
Lighttpd: (còn đượ ọc g i là Lighty) là m t web server nh và t i u hóa choộ ẹ ố ư hi u su t Nó thích h p cho các ng d ng có l u lệ ấ ợ ứ ụ ư ượng truy c p l n ho c có yêuậ ớ ặ c u t i nhanh.ầ ả
Caddy là một máy chủ web hiện đại, dễ dàng cấu hình và triển khai Nó hỗ trợ HTTPS tự động thông qua Let's Encrypt và cung cấp nhiều tính năng mở rộng như proxy ngược, rewrite và load balancing.
Ngoài Apache HTTP Server, còn nhiều web server khác như LiteSpeed, Cherokee, và IBM HTTP Server, cũng như các web server tích hợp trong các framework như Flask và Express.js Lựa chọn web server phụ thuộc vào yêu cầu cụ thể của người dùng và môi trường triển khai Trong bài này, chúng ta sẽ sử dụng Apache HTTP Server để triển khai và thực hiện một demo Web Server Để hiểu rõ hơn về ưu điểm của Web Server này, hãy tiếp tục theo dõi phần tiếp theo.
Ư u nh ượ c đi m c a vi c s d ng Webb Server Apache ể ủ ệ ử ụ
Ưu đi m c a vi c s d ng web server Apache:ể ủ ệ ử ụ
Miễn phí và mã nguồn mở của Apache cho phép người dùng tải về, sử dụng và tùy chỉnh mà không phải trả phí Điều này giúp giảm chi phí và tăng tính linh hoạt cho các tổ chức.
Apache là một máy chủ web ổn định và đáng tin cậy, đã được phát triển và kiểm tra kỹ lưỡng qua nhiều năm Nó trở thành một trong những máy chủ web phổ biến nhất trên thế giới, với độ tin cậy được chứng minh qua hàng trăm nghìn website và người dùng.
Apache có một cộng đồng hỗ trợ mạnh mẽ với đông đảo người dùng, bao gồm các nhà phát triển, chuyên gia bảo mật và người dùng cuối Người dùng có thể tìm kiếm và nhận được hỗ trợ từ cộng đồng này thông qua các diễn đàn, mailing list và tài liệu trực tuyến.
Apache có khả năng mở rộng mạnh mẽ nhờ vào nhiều module và tiện ích bổ sung, cho phép người dùng tùy chỉnh và mở rộng chức năng của web server theo nhu cầu cụ thể Điều này giúp Apache phù hợp với nhiều loại ứng dụng và yêu cầu kỹ thuật khác nhau.
Nh ược đi m c a vi c s d ng web server Apache:ể ủ ệ ử ụ
Tiêu th tài nguyên trong Apache có thể ảnh hưởng đến hiệu suất hệ thống, đặc biệt là khi phải xử lý một lượng lớn các kết nối đồng thời Điều này có thể dẫn đến việc giảm hiệu suất của hệ thống trong một số trường hợp nhất định.
Cấu hình Apache có tính phức tạp và yêu cầu kiến thức kỹ thuật sâu rộng để hiểu và tùy chỉnh một cách hiệu quả Điều này có thể làm cho quá trình cài đặt và quản lý trở nên phức tạp đối với những người mới bắt đầu hoặc không có kinh nghiệm.
Bảo mật và cập nhật: Mặc dù Apache có một cộng đồng hỗ trợ mạnh mẽ, việc duy trì và cập nhật bảo mật cho web server vẫn là một thách thức lớn Lỗ hổng bảo mật mới có thể xuất hiện và cần phải được xử lý kịp thời để đảm bảo an toàn cho hệ thống.
Trong một số trường hợp, Apache có thể không hiệu quả cho việc xử lý các yêu cầu có lưu lượng cao hoặc cần phản hồi nhanh Các giải pháp thay thế như Nginx hoặc LiteSpeed có thể phù hợp hơn trong những tình huống này.
Th c hi n tri n khai ự ệ ể
Truy c pậ Ubuntu v iớ quy nề root Ki m tra c p nh t gói aptể ậ ậ
Th cự hi nệ cài apache2 b ngằ l nhệ sau:
L nhệ trên sẽ cài đ tặ Apache và t tấ cà thành ph nầ ph thu cụ ộ c nầ thi tế c aủ nó Ti p theo các b n c n b t m t s mod c n thi t nh SSL, rewrite,ế ạ ầ ậ ộ ố ầ ế ư header
Ki mể tra máy ch Webủ
Ngoài ra, đ xác đ nhể ị UFW Firewall đã thành công và có thể truy c pậ website t bên ngoài hãy tra ừ http://your_server_ip/ trên trình duy t đ ki m traệ ể ể
Nh nấ exit đ quay l iể ạ ubutu đ ti pể ế t cụ th cự hi nệ l nh C u hình mysqlệ ấ
T tắ trang web default c aủ Apache
C uấ hình uư tiên cho php run sudo nano /etc/apache2/mods-enabled/dir.conf
Khi b n hoàn t t, l u và đóng t p b ng cách nh n CTRL+X Xác nh n l u ạ ấ ư ệ ằ ấ ậ ư b ng cách nh p Y và sau đó nh n ENTER đ xác minh v trí l u t p.ằ ậ ấ ể ị ư ệ
Sau đó, kh i đ ng l i máy ch Apache web đ các thay đ i c a b n đở ộ ạ ủ ể ổ ủ ạ ược nh n di n Làm đi u này b ng cách gõ:ậ ệ ề ằ
After installing PHP 8.1, configure the PHP settings for Apache2 by editing the php.ini file with the command: `sudo nano /etc/php/8.1/apache2/php.ini` Set the following parameters: `max_input_vars` to 1500, `max_execution_time` to 360 seconds, `upload_max_filesize` to 100M, `memory_limit` to 256M, and enable `short_open_tag`, `allow_url_fopen`, and `file_uploads`.
Để thay đổi cấu hình cho phù hợp, bạn có thể sử dụng terminal trên Linux Nhấn Ctrl + W để sao chép từ dòng văn bản bên dưới, sau đó dán vào terminal (nhấn chuột phải để dán) để tìm kiếm nhanh đến vị trí cần chỉnh sửa Hãy đảm bảo rằng bạn sửa đổi giá trị date.timezone thành "Ho Chi Minh".
Nh nấ Ctrl O, Enter, đ l uể ư l i.ạ Nh nấ Ctrl X đ thoát ể ra
Ki m tra tr ng tháiể ạ
Ki mể tra x lý PHP trên máy ch Webử ủ
Gõ l nhệ sudo nano /var/www/html/info.php đ t oể ạ t pệ t iạ vị trí tương ứng
Thêm văn b n sau, đây là mã PHP h p l bên trong t p:ả ợ ệ ệ
Có th truy c pể ậ đ nế Web b ngằ đ aị ch :ỉ http://your_server_ip/info.php
Cài thêm các php extension
T o 1 file c u hình truy c p wordpress trong Apache2 ạ ấ ậ sudo nano /etc/apache2/sites-available/wordpress.confThêm vào văn b n n i dung sau:ả ộ
T iả WordPress b nả m iớ nh tấ
Th cự hi nệ t pậ htaccess trong wordpress đ làm cho nó có s nể ẵ cho wordpress sau này
Th cự hi nệ sao chép c uấ hình m u ẫ
Cu iố cùng, th cự hi nệ sao chép cài đ tặ đã t iả xu ngố vào /var/www/wordpress
Vì b nạ v aừ ch yạ máy ch web dủ ưới d ngạ root, b nạ nên đ mả b oả m iọ t pệ m i đớ ượ ạc t o đ u thu c s h u c a ngề ộ ở ữ ủ ười dùng và nhóm www-data.
Th cự hi nệ l nhệ tìm ki mế đ đ tể ặ quy nề cho các t pệ vào các thư m cụ wordpress
Ch nhỉ s aử t pệ /var/www/wordpress/wp-config.php
Trong cùng 1 t pệ wp-config.php có m tộ ph nầ dành cho các key và salt duy nhât.
B nạ có thể l yấ các giá trị m iớ b ngằ cách nh pậ vào
Sau đó, nh pậ các giá trị l yấ được thay vào các trường bên dưới
C uấ hình virtual host: nano /etc/apache2/sites-available/wordpress.conf
Th cự hi nệ c uấ hình wordpress trên browser
Cài đ tặ SSL sudo openssl req -x509 -days 365 -newkey rsa:2048 -keyout
/etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Th cự hi nệ t iả file DigiCert, và di chuy nể đ nế thư m cụ ch aứ 2 crt được t oạ phía trên Link t iả https://www.digicert.com/secure/intermediates/
Phân quy nề chỉ cho phép root m iớ sử d ngụ được thư m cụ ssl đ b oể ả m tậ t tố h nơ
Th cự hi nệ c uấ hình l iạ file config
Dùng l nhệ đ kh iể ở đ ngộ l iạ Apache
Demo truy c p Web Server ậ
Th cự hi nệ truy c pậ b ngằ https
K t lu n ế ậ 29 5.2 Đ xu tề ấ
Trong quá trình nghiên cứu và triển khai Web server, tôi đã xác định và thực hiện một loạt các bước cơ bản để lựa chọn Web server phù hợp, cài đặt và cấu hình Điều này bao gồm việc triển khai ứng dụng web trên môi trường sản xuất Dưới đây là một số kết luận chính từ quá trình nghiên cứu và thực hành của chúng tôi.
Quá trình l a ch n Web server nên d a trên nhu c u c th c a t ch cự ọ ự ầ ụ ể ủ ổ ứ ho c d án, bao g m yêu c u v hi u su t, tính linh ho t, b o m t và h trặ ự ồ ầ ề ệ ấ ạ ả ậ ỗ ợ c ng đ ng.ộ ồ
Apache, Nginx và Microsoft IIS là nh ng Web server ph bi n đữ ổ ế ượ ử ục s d ng r ng rãi, m i lo i có nh ng u đi m và nhộ ỗ ạ ữ ư ể ược đi m riêng.ể
Quá trình cài đ t và c u hình Web server đòi h i ki n th c kỹ thu t sâuặ ấ ỏ ế ứ ậ r ng, đ c bi t là v h đi u hành và m ng máy tính.ộ ặ ệ ề ệ ề ạ
C n chú ý đ n vi c t i u hóa c u hình đ đ m b o hi u su t và b o m tầ ế ệ ố ư ấ ể ả ả ệ ấ ả ậ t t nh t cho Web server.ố ấ
Tri n khai ng d ng web:ể ứ ụ
Tri n khai ng d ng web trên môi trể ứ ụ ường s n xu t đòi h i s chu n b kỹả ấ ỏ ự ẩ ị lưỡng và ki m tra c n th n trể ẩ ậ ước khi đ a vào ho t đ ng.ư ạ ộ
C n có các quy trình và công c t đ ng hóa đ gi m thi u l i và t i u hóaầ ụ ự ộ ể ả ể ỗ ố ư quá trình tri n khai.ể
D a trên nh ng k t lu n t quá trình nghiên c u và th c hành c a chúng tôi,ự ữ ế ậ ừ ứ ự ủ chúng tôi đ xu t m t s đi u sau đây đ c i thi n quá trình tri n khai và qu n lýề ấ ộ ố ề ể ả ệ ể ả Web server:
Nâng cao ki n th c và kỹ năng:ế ứ
Đào t o và nâng cao ki n th c cho nhân viên v cài đ t, c u hình và qu nạ ế ứ ề ặ ấ ả lý Web server đ gi m thi u r i ro và t i u hóa hi u su t.ể ả ể ủ ố ư ệ ấ
Đ u t vào các công c t đ ng hóa tri n khai và qu n lý Web server đầ ư ụ ự ộ ể ả ể gi m thi u l i và tăng tính hi u qu ả ể ỗ ệ ả
Liên t c đánh giá và t i u hóa c u hình c a Web server đ đ m b o hi uụ ố ư ấ ủ ể ả ả ệ su t cao nh t và s d ng tài nguyên hi u qu ấ ấ ử ụ ệ ả
Áp d ng các bi n pháp b o m t hi n đ i và thụ ệ ả ậ ệ ạ ường xuyên ki m tra đ b oể ể ả v Web server kh i các m i đe d a m ng.ệ ỏ ố ọ ạ
5 Th c hi n các d án nghiên c u và th nghi m m i:ự ệ ự ứ ử ệ ớ
Ti p t c nghiên c u và th nghi m các công ngh m i và các phế ụ ứ ử ệ ệ ớ ương pháp tiên ti n đ c i thi n quá trình tri n khai và qu n lý Web server.ế ể ả ệ ể ả
Trong bối cảnh Internet phát triển mạnh mẽ, việc quản lý và khai thác Web server trở thành yếu tố quan trọng trong hoạt động kinh doanh và công nghệ thông tin Bằng cách nắm vững các nguyên lý và kỹ thuật cơ bản, cùng với việc áp dụng các biện pháp và công cụ hiện đại, doanh nghiệp có thể tối ưu hóa hiệu suất và bảo mật cho Web server của mình.