Hầu hết các máy tính hiện nay đều được trang bị sẵn một web server cục bộ hoặc cho phép người dùng dễ dàng cài đặt nó. Mặc dù quá trình thiết lập có thể tốn một chút công sức, nhưng theo đánh giá của các chuyên gia công nghệ, việc này thực sự rất đáng giá. Thậm chí, nhiều người dùng có kinh nghiệm xem việc truy cập thành công http://localhost/ trong trình duyệt là dấu hiệu cho thấy máy tính của họ đã được thiết lập hoàn chỉnh. Vậy, web server cục bộ là gì và tại sao nó lại quan trọng đối với người dùng công nghệ?
Web Server Cục Bộ Là Gì?
Đằng sau mỗi trang web trên internet là một web server. Thuật ngữ này có thể đề cập đến cả phần mềm và phần cứng: chương trình lắng nghe các yêu cầu URL và trả về tài liệu tương ứng, cũng như máy tính mà chương trình đó đang chạy.
Trong ngữ cảnh của bài viết này, chúng ta đang nói về phần mềm web server – chẳng hạn như Apache hoặc Nginx – mà bạn có thể cài đặt trực tiếp trên máy tính để bàn của mình. Khi được thiết lập, chiếc máy tính đó sẽ hoạt động như một web server cá nhân, chỉ phục vụ các yêu cầu từ chính thiết bị của bạn.
Việc thiết lập một web server cục bộ không đồng nghĩa với việc nó sẽ mở ra internet để bất kỳ ai trên thế giới cũng có thể truy cập. Thực tế, chúng tôi không khuyến khích bạn làm điều đó. Mặc dù về mặt kỹ thuật, bạn có thể tự host một web server công cộng từ kết nối internet gia đình, nhưng điều này chỉ nên được thực hiện như một thử nghiệm tạm thời, do những lo ngại về bảo mật và chi phí vận hành. Tuy nhiên, một web server cục bộ mà chỉ mình bạn có thể xem lại là một câu chuyện hoàn toàn khác và mang lại nhiều lợi ích thiết thực.
Với một web server cục bộ đã được cài đặt, bạn có thể xem các tệp tin của mình trong một trình duyệt web, thường là bằng cách truy cập http://localhost/. Thông thường, bạn sẽ thấy một trang “chào mừng” mặc định, mặc dù đôi khi bạn có thể cần cài đặt và cấu hình trình duyệt của mình tùy thuộc vào hệ điều hành đang sử dụng.
Giao diện mặc định của Apache trên Ubuntu hiển thị thông tin cấu hình chi tiết.
Hướng Dẫn Cài Đặt và Cấu Hình Web Server
Việc cài đặt và cấu hình web server cục bộ có thể khác nhau tùy thuộc vào hệ điều hành bạn đang sử dụng. Dưới đây là hướng dẫn cơ bản cho các nền tảng phổ biến:
Trên Windows: Internet Information Services (IIS)
Nếu bạn đang sử dụng Windows, Internet Information Services (IIS) thường đã có sẵn và bạn chỉ cần kích hoạt nó trong phần cài đặt tính năng của hệ điều hành. Đối với nhiều mục đích sử dụng cơ bản, IIS có thể hoạt động tốt. Tuy nhiên, đây là một sản phẩm độc quyền và không được sử dụng phổ biến bằng các giải pháp mã nguồn mở như Apache.
Trên macOS: Apache
Apache vẫn là web server nổi tiếng và có sẵn nhất trên tất cả các hệ điều hành. Việc cài đặt và bắt đầu sử dụng rất dễ dàng, mặc dù nó cũng là một chương trình có khả năng cấu hình cao và có thể trở nên phức tạp nếu bạn muốn thử nghiệm những thứ vượt ra ngoài các thiết lập cơ bản. Apache được cài đặt mặc định trên macOS và thậm chí có thể đang chạy tự động mà bạn không hề hay biết – chỉ cần kiểm tra http://localhost/ để xem.
Nếu Apache chưa chạy trên macOS, bạn có thể thử chạy lệnh sau trong Terminal: sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist.
Trên Linux: Nginx hoặc Apache
Nginx là một lựa chọn thay thế tuyệt vời cho Apache, và giống như Apache, nó là phần mềm miễn phí và mã nguồn mở. Nếu bạn đang chạy một bản phân phối Linux mà không đi kèm với Apache, có thể bạn nên cài đặt Nginx để có trải nghiệm ban đầu dễ chịu hơn một chút.
Để cài đặt Nginx trên các hệ thống dựa trên Debian/Ubuntu, bạn có thể sử dụng lệnh:
sudo apt install nginx
Thiết lập Document Root
Dù bạn cài đặt web server nào, bạn cũng sẽ cần thiết lập một “document root”. Đây là thư mục cấp cao nhất của server của bạn, và theo mặc định, bạn sẽ chỉ có thể xem các tệp tin nằm dưới thư mục này thông qua http://localhost/. Vị trí mặc định của Apache trên macOS là /Library/WebServer/Documents, trong khi /var/www/html là vị trí điển hình trên Linux, cho cả Apache và Nginx. Vị trí cụ thể có thể khác nhau tùy thuộc vào bản phân phối của bạn.
Để kiểm tra document root, bạn có thể tìm kiếm cài đặt liên quan trong tệp cấu hình của web server của mình. Đối với Apache trên macOS, điều này sẽ nằm trong /etc/apache2/httpd.conf:
DocumentRoot "/Library/WebServer/Documents"
Trên Linux, bạn có thể tìm thấy tệp cấu hình tại /etc/apache2/sites-enabled/000-default.conf cho Apache. Đối với Nginx, nó sẽ nằm tại /etc/nginx/sites-enabled/default và chỉ thị sẽ trông như sau:
root /var/www/html;
Nếu bạn muốn thiết lập một trang web trong vị trí mặc định, điều đó hoàn toàn ổn. Tuy nhiên, nhiều người dùng có kinh nghiệm thích đặt một thư mục riêng trong thư mục nhà của mình và phục vụ các tệp tin từ đó thay vì vị trí mặc định.
Ứng Dụng Thực Tiễn Của Web Server Cục Bộ
Một web server cục bộ không chỉ hoàn hảo cho việc lưu trữ các trang web cá nhân mà còn có thể làm được nhiều điều hơn thế.
Duyệt và Quản Lý Tệp Tin Hệ Thống
Chỉ với một chút thiết lập, bạn có thể sử dụng trình duyệt web của mình như một trình quản lý tệp tin. Nó sẽ ở chế độ chỉ đọc, vì vậy bạn sẽ không thể sử dụng nó để quản lý tệp tin như đổi tên hoặc xóa. Nhưng bạn sẽ có thể điều hướng qua các thư mục, xem danh sách các tệp tin bên trong chúng và mở các tệp đó:
Danh sách thư mục mặc định của Apache hiển thị các thư mục và ngày chỉnh sửa.
Module autoindex của Apache cho phép tạo ra các chỉ mục thư mục khi bạn yêu cầu một URL ánh xạ tới một thư mục. Điều này tương tự như việc chạy lệnh ls directory trên dòng lệnh, mặc dù đầu ra tương tác hơn một chút.
Một số chuyên gia thường có một thư mục trên ổ cứng chứa phần lớn công việc, bài viết, ghi chú và hình ảnh của họ. Bằng cách đặt một web server phía trước thư mục này, họ có thể duyệt qua các tệp này bất cứ khi nào họ đang ở trong trình duyệt web – vốn là hầu hết thời gian. Việc có một cái nhìn tức thì về tất cả nội dung cá nhân của mình tỏ ra vô cùng hữu ích.
Chế độ xem mặc định trông khá cổ điển, nhưng bạn có thể tùy chỉnh nó bằng CSS và JavaScript của riêng mình nếu bạn có kiến thức. Với các thiết lập phù hợp, bạn có thể cập nhật thiết kế một chút và thêm các tính năng như cột có thể ẩn và một bộ lọc tìm kiếm đơn giản:
Giao diện danh sách thư mục Apache tùy chỉnh với kiểu dáng hiện đại và ô tìm kiếm.
Đọc Tài Liệu HTML và Markdown Ngay Trên Trình Duyệt
Khi bạn cài đặt phần mềm hoặc tải xuống bất kỳ bộ sưu tập tệp nào, bạn thường sẽ nhận được một số tài liệu hướng dẫn rất hữu ích. Những tài liệu này có thể ở định dạng văn bản đơn giản, định dạng có cấu trúc như Markdown hoặc HTML, hoặc thậm chí là PDF. Dù là định dạng nào, trình duyệt của bạn đều có thể xử lý, hiển thị tài liệu mà không cần mở một ứng dụng riêng biệt.
Đối với Markdown, các tiện ích mở rộng như Markdown Viewer cho Chrome mang lại trải nghiệm xem đơn giản và hiệu quả. Công cụ này trình bày tài liệu Markdown ở định dạng hấp dẫn, dễ đọc, với các tùy chọn để xử lý biểu tượng cảm xúc, mục lục và nhiều hơn nữa.
Trang web hiển thị tài liệu Markdown với định dạng đẹp mắt ngay trong trình duyệt.
Phát Triển và Kiểm Thử Website Hiệu Quả
Khi bạn đang phát triển cho web, một web server cục bộ là vô cùng hữu ích. Thay vì phải tải các tệp tin của bạn lên một server thử nghiệm hoặc tệ hơn là chỉ “cầu may” và đưa chúng lên môi trường thực tế, một server cục bộ cho phép bạn xem công việc đang tiến hành, mà không gặp rắc rối. Bạn thậm chí có thể làm việc offline, không cần kết nối internet!
Điều này áp dụng cho công việc thiết kế web, nội dung bài viết và cả lập trình phức tạp, cho dù đó là JavaScript phía client hay một ngôn ngữ backend. Nếu bạn đang làm việc với ngôn ngữ backend, bạn sẽ cần cấu hình web server của mình để xử lý nó, nhưng đây là một quá trình tương đối đơn giản.
Tự Host Ứng Dụng Web Cá Nhân (Self-Hosting Web Apps)
Nhiều ứng dụng “tự host” (self-hosted) hướng đến đối tượng sử dụng web server cục bộ, và một số ứng dụng phổ biến nhất là để tiêu thụ đa phương tiện, như trình phát nhạc hoặc thư viện hình ảnh. Thiết lập này nhanh hơn nhiều so với giải pháp dựa trên đám mây, và bạn không cần phải tốn băng thông để tải lên và tải xuống các tệp lớn.
Logo Jellyfin, một giải pháp máy chủ đa phương tiện, trên màn hình máy tính.
Piwigo là một ứng dụng web mã nguồn mở để quản lý ảnh và các phương tiện khác. Bạn có thể sử dụng phiên bản tự host miễn phí của nó, mặc dù bạn sẽ cần PHP và MySQL bên cạnh web server.
Giao diện Piwigo hiển thị ảnh trong album "Sunsets" cùng tùy chọn chỉnh sửa thông tin.
FreshRSS là một trình tổng hợp RSS gọn gàng, nhẹ nhàng. Bạn có thể thử bản demo trực tuyến hoặc tải xuống và host ứng dụng trên một web server đang chạy PHP.
FreshRSS hiển thị danh sách các bài đăng RSS từ blog và bản phát hành phần mềm.
Thư Viện Bookmarklet JavaScript Tiện Lợi
Bạn có thể sử dụng tính năng đánh dấu trang (bookmark) của trình duyệt web để mở rộng chức năng của bất kỳ trang web nào, bằng cách viết mã JavaScript của riêng bạn hoặc tải xuống các script hiện có. Tuy nhiên, khi các script này bắt đầu trở nên phức tạp hơn, bookmark khó có thể chứa hết chúng.
Để quá trình này dễ dàng hơn, tại sao không host các script đó trên server cục bộ của bạn và tải chúng vào các trang thông qua một bookmark của trình duyệt? Thiết lập này cho phép bạn thực hiện các tác vụ như kiểm tra chính tả một trang, trích xuất dữ liệu từ đó hoặc thay đổi kiểu của nó để ẩn các yếu tố không mong muốn.
Kết Luận
Mặc dù một số khía cạnh của việc tự host (self-hosting) đang dần được thay thế bởi các hình thức hiện đại hơn như Docker images hoặc các dịch vụ dựa trên đám mây, việc cài đặt và vận hành web server cục bộ vẫn là một kỹ năng quan trọng. Đây không chỉ là một cách dễ dàng để thực hành quản trị hệ thống mà còn giúp bạn kiểm soát hoàn toàn những gì đang chạy trên máy tính của mình. Sở hữu một máy chủ web cục bộ không chỉ mở ra vô vàn khả năng cho công việc và giải trí mà còn củng cố kiến thức nền tảng về công nghệ web.
Bạn đã từng thử cài đặt web server cục bộ chưa? Hãy chia sẻ kinh nghiệm hoặc câu hỏi của bạn về việc sử dụng localhost trong phần bình luận bên dưới!