Web server (máy chủ web) là máy tính và phần mềm nhận yêu cầu từ trình duyệt qua giao thức HTTP hoặc HTTPS, rồi trả về nội dung website. Về phần cứng, web server là máy chủ lưu file website (HTML, CSS, JavaScript, ảnh) và luôn kết nối Internet. Về phần mềm, web server là chương trình như Nginx, Apache hay LiteSpeed, hiểu URL và HTTP để phục vụ các file đó.
Định nghĩa hai mặt này theo MDN Web Docs. Khi nói “cài web server”, người ta thường nói về phần mềm; khi nói “thuê web server”, thường là nói về máy chủ chạy website. Bài này giải thích web server hoạt động thế nào, các web server phổ biến, web server khác application server ra sao, và cách tự cài web server trên VPS.
- Phần cứng: một máy chủ vật lý hoặc máy chủ ảo (VPS, cloud server) chạy 24/7, có IP công khai.
- Phần mềm: tối thiểu là một HTTP server; website động cần thêm trình chạy mã (PHP, Node.js, Python) và database.
- Không cần tự quản lý: nếu chỉ chạy website WordPress hoặc website giới thiệu, web hosting đã có sẵn web server được nhà cung cấp quản trị.
Web server hoạt động như thế nào?
Web server hoạt động theo mô hình client – server: trình duyệt (client) luôn là bên gửi yêu cầu HTTP, web server chỉ trả lời. Khi nhận yêu cầu, web server tìm file khớp với URL và gửi về; với trang động, web server nhờ ứng dụng phía sau dựng nội dung; không có gì khớp thì trả mã lỗi, hay gặp là 404.

Bạn có thể tự xem một lượt truy cập bằng hai lệnh có sẵn trên Linux, macOS và Windows 10/11: nslookup hỏi DNS, curl -I chỉ lấy phần đầu phản hồi của web server.
nslookup example.com
curl -I https://example.com/
- Dòng đầu của
curl -Ilà mã trạng thái, ví dụHTTP/2 200. Gặp301hoặc302thì xem headerlocationđể biết trang được chuyển đi đâu. - Header
server, nếu máy chủ không ẩn, cho biết phần mềm đang trả lời, ví dụ nginx hoặc LiteSpeed. - Một IP phục vụ được nhiều website vì web server phân biệt theo header
Host. Vì vậy trỏ tên miền đúng IP vẫn chưa đủ nếu tên miền chưa được khai báo trong cấu hình web server. - Nhóm mã lỗi chỉ ra nơi cần tìm: 4xx (403, 404) thường do URL hoặc quyền đọc file; 5xx (500, 502, 504) đến từ máy chủ hoặc ứng dụng phía sau.
Khác biệt giữa HTTP và HTTPS có tại bài so sánh HTTP và HTTPS.
Web server tĩnh và web server động
Web tĩnh trả về đúng file đã nằm trên ổ đĩa, nên mọi người nhận cùng một nội dung. Web động dựng trang riêng cho từng lượt truy cập, ví dụ giỏ hàng của mỗi khách một khác, nên cần thêm trình chạy mã như PHP-FPM và cơ sở dữ liệu. Website WordPress, cửa hàng online là web động; landing page chỉ gồm HTML, CSS là web tĩnh.
Các web server phổ biến hiện nay
Các phần mềm web server phổ biến hiện nay gồm Nginx, Apache HTTP Server, LiteSpeed, Microsoft IIS và Caddy. Không có phần mềm nào tốt cho mọi trường hợp: Nginx mạnh ở reverse proxy và file tĩnh, Apache linh hoạt với .htaccess, LiteSpeed thay thế Apache trên hosting, IIS dành cho Windows, Caddy tự động cấp HTTPS.
Web server Giấy phép Thế mạnh (theo tài liệu chính thức) Phù hợp Nginx Mã nguồn mở, BSD 2 điều khoản HTTP web server, reverse proxy, content cache, cân bằng tải, proxy TCP/UDP và mail VPS, làm proxy trước ứng dụng Node.js, Python, container Docker Apache HTTP Server Mã nguồn mở, Apache License 2.0 Mở rộng bằng module nạp động, cấu hình theo thư mục bằng .htaccess, virtual host Hosting nhiều website, ứng dụng PHP cần .htaccess LiteSpeed Web Server Thương mại (có bản miễn phí giới hạn); OpenLiteSpeed là dự án mã nguồn mở Thay thế trực tiếp Apache: đọc cấu hình Apache và .htaccess; có LSCache, HTTP/3 Shared hosting, WordPress dùng plugin LiteSpeed Cache Microsoft IIS Đi kèm Windows Server Kiến trúc module, tích hợp pipeline ASP.NET, HTTP.sys nhận yêu cầu ở kernel Ứng dụng ASP.NET, hạ tầng Windows Caddy Mã nguồn mở, Apache License 2.0 Web server đầu tiên bật HTTPS tự động theo mặc định: tự xin, gia hạn chứng chỉ và chuyển HTTP sang HTTPS Dự án nhỏ, reverse proxy cần HTTPS nhanh
Bài chuyên sâu: Nginx là gì, Apache là gì, và LiteSpeed là gì. Lighttpd, có trong bài cũ, vẫn là web server mã nguồn mở nhẹ nhưng ít gặp trên hosting phổ thông.
Web server khác application server như thế nào?
Web server nhận kết nối HTTP và phục vụ nội dung tĩnh, còn application server chạy mã nguồn của ứng dụng để tạo nội dung động. Trong thực tế, hai phần thường đi cùng nhau: Nginx đứng trước nhận yêu cầu và cấp HTTPS, rồi chuyển phần động cho PHP-FPM, Node.js, Gunicorn hay Tomcat xử lý.
Web server Application server Việc chính Nhận yêu cầu HTTP/HTTPS, trả file tĩnh, chuyển tiếp yêu cầu Chạy logic ứng dụng, truy vấn database, tạo trang động hoặc API Ví dụ Nginx, Apache, LiteSpeed, Caddy, IIS PHP-FPM, Node.js, Gunicorn (Python), Tomcat (Java) Nơi cấp HTTPS Thường ở đây (TLS termination) Thường nhận HTTP nội bộ từ web server Lỗi thường gặp 404 (không thấy file), 403 (không có quyền) 500 (lỗi mã), 502/504 khi web server không nhận được phản hồi
Khi web server không nhận được phản hồi hợp lệ từ application server, trình duyệt thường thấy lỗi 502; xem cách xử lý lỗi 502 Bad Gateway trên Nginx. Chi tiết về phần ứng dụng có tại Application Server là gì. Khi web server chuyển tiếp yêu cầu cho máy chủ khác như vậy, nó đóng vai trò reverse proxy.
Cài web server trên VPS
Cài web server trên VPS gồm năm việc: chuẩn bị VPS Ubuntu LTS, cài phần mềm web server, mở cổng 80/443 trên tường lửa, trỏ tên miền về IP của VPS, rồi cài chứng chỉ SSL để chạy HTTPS. Với Nginx trên Ubuntu 24.04, các bước cơ bản như sau.
Nếu bạn chưa có máy chủ, đọc VPS là gì. Lộ trình đầy đủ từ lúc nhận VPS tới khi chạy website có trong bài cách sử dụng VPS.
# 1. Cập nhật và cài Nginx
sudo apt update && sudo apt upgrade -y
sudo apt install nginx -y
systemctl status nginx
# 2. Tường lửa: mở SSH TRƯỚC rồi mới bật
sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full" # cổng 80 và 443
sudo ufw enable
# 3. Kiểm tra cấu hình mỗi lần sửa, rồi nạp lại
sudo nginx -t
sudo systemctl reload nginx
- Thư mục website mặc định:
/var/www/html. Mỗi website nên có một file cấu hình riêng (server block) trong/etc/nginx/sites-available/, liên kết sangsites-enabled. - Trỏ tên miền: tạo bản ghi A (và AAAA nếu có IPv6) trỏ tên miền về IP của VPS, đợi DNS cập nhật rồi mới xin chứng chỉ.
- Cài SSL: dùng Certbot theo hướng dẫn chính thức:
sudo snap install --classic certbot,sudo ln -s /snap/bin/certbot /usr/local/bin/certbot,sudo certbot --nginx, rồi thử gia hạn bằngsudo certbot renew --dry-run. Hướng dẫn từng bước: cài SSL trên VPS. - Chạy website động: cài thêm PHP-FPM và MariaDB/MySQL (WordPress), hoặc chạy ứng dụng Node.js, Docker phía sau Nginx làm reverse proxy.
Bảo vệ web server
- Cập nhật thường xuyên hệ điều hành, web server và mã nguồn website để vá lỗ hổng.
- Chỉ mở cổng cần thiết: SSH, 80, 443. Không mở cổng database hay cổng quản trị ứng dụng ra Internet.
- Đăng nhập SSH bằng key thay vì mật khẩu; tắt đăng nhập root bằng mật khẩu.
- Bật HTTPS cho mọi trang và chuyển hướng HTTP sang HTTPS.
- Theo dõi log truy cập và log lỗi (Nginx:
/var/log/nginx/), sao lưu website và database ra ngoài máy chủ.
Danh sách kiểm tra đầy đủ: bảo mật VPS.
Khi nào không cần tự dựng web server?
Không cần tự dựng web server khi bạn chỉ chạy một website WordPress hoặc website giới thiệu, và không có ai quản trị Linux. Shared hosting hoặc WordPress hosting đã có web server, SSL, sao lưu được nhà cung cấp vận hành. Tự dựng web server trên máy tính ở nhà cũng không nên dùng cho website thật: máy phải bật liên tục, có IP ổn định và chịu được truy cập từ Internet.
Tại Tino, gói WordPress Hosting ghi dùng LiteSpeed Web Server, cPanel, SSL miễn phí từ Let’s Encrypt và sao lưu mỗi ngày (thông tin trang sản phẩm, kiểm tra 20/10/2026). Nếu cần toàn quyền cấu hình Nginx, Apache hay chạy Docker, chọn VPS NVMe có Full Root Access.
Câu hỏi thường gặp về web server
Web server và hosting khác nhau thế nào?
Web server là phần mềm (và máy chủ) phục vụ website qua HTTP. Hosting là dịch vụ cho thuê chỗ chạy website trên máy chủ đã cài sẵn web server, thường kèm bảng điều khiển, email, sao lưu. Khi thuê hosting, bạn dùng web server do nhà cung cấp quản trị; khi thuê VPS, bạn tự cài và quản trị web server.
Máy tính cá nhân có làm web server được không?
Được, về kỹ thuật. Bạn cài Nginx hoặc Apache rồi mở trình duyệt vào http://localhost để thử. Nhưng để phục vụ người dùng thật, máy cần bật 24/7, có IP công khai hoặc tên miền động, mở cổng trên router và tự lo bảo mật, nên ít phù hợp ngoài mục đích học tập.
Static web là gì?
Static web (web tĩnh) là website gồm các file HTML, CSS, JavaScript và ảnh có sẵn, web server gửi nguyên các file này cho trình duyệt mà không xử lý thêm. Web tĩnh nhanh, ít lỗ hổng, hợp cho trang giới thiệu, tài liệu; nhưng muốn có giỏ hàng, đăng nhập hay bình luận thì cần web động hoặc dịch vụ bên ngoài.
Nên chọn Nginx hay Apache?
Trên VPS mới, Nginx là lựa chọn phổ biến khi cần reverse proxy cho Node.js, Python hoặc Docker và phục vụ file tĩnh. Apache phù hợp khi mã nguồn dựa nhiều vào file .htaccess, ví dụ nhiều plugin WordPress cũ. Hai phần mềm cũng có thể chạy cùng nhau: Nginx đứng trước, Apache xử lý PHP phía sau.
Web server dùng cổng nào?
Mặc định HTTP dùng cổng 80, HTTPS dùng cổng 443. Khi chạy thử ứng dụng, lập trình viên hay dùng cổng khác như 8080 hoặc 3000; khi đưa lên mạng, nên để web server nhận ở 80/443 rồi chuyển tiếp vào cổng nội bộ của ứng dụng.
Nguồn tham khảo
- MDN Web Docs: What is a web server? (truy cập 20/10/2026)
- nginx.org (truy cập 20/10/2026)
- The Apache HTTP Server Project (truy cập 20/10/2026)
- LiteSpeed Technologies: LiteSpeed Web Server (truy cập 20/10/2026)
- Microsoft Learn: Introduction to IIS Architectures (truy cập 20/10/2026)
- Caddy Docs: Automatic HTTPS (truy cập 20/10/2026)
- Certbot: hướng dẫn cho Nginx trên Linux (snap) (truy cập 20/10/2026)
