127.0.0.1 SỔ TAY VẬN HÀNH MÁY CHỦ & CỨU HỘ WORDPRESS THỰC CHIẾN
MINH BẠCH

Cài Đặt NGINX Trên Ubuntu 24.04 Và Mở Trang Chào Mừng Qua Địa Chỉ IP VPS

Hướng dẫn cài đặt NGINX trên Ubuntu 24.04 LTS, mở cổng 80 trên UFW Firewall và kiểm tra trang chào Welcome to nginx qua địa chỉ IP VPS trước khi trỏ tên miền.

Hosting & WordPress // localhost.vn
Mục lục bài viết (9 mục)
ĐÚC KẾT THỰC CHIẾN

Trước khi nghĩ tới chuyện trỏ tên miền hay cài WordPress, hãy cài NGINX và mở trang chào 'Welcome to nginx!' trực tiếp bằng địa chỉ IP của VPS: bước đệm nhỏ này giúp bạn xác nhận dịch vụ web và cổng 80 đã thông suốt hoàn toàn, tách biệt hẳn với rắc rối của DNS về sau.

Phạm vi thực hành: Máy chủ thử nghiệm chạy Ubuntu 24.04 LTS độc lập, chưa chứa dữ liệu website đang vận hành. Hồ sơ thực nghiệm trên máy LAB-CF-02 ngày 01/10/2026 bao gồm số liệu đọc trạng thái lúc 03:42 và hình ảnh đối chiếu lúc 13:08–13:09 trên môi trường đã cài đặt sẵn.

Sau khi hoàn tất bước bảo mật SSH và tường lửa, cột mốc đầu tiên mang lại cảm giác “máy chủ của mình đã biết nói chuyện với thế giới” chính là cài đặt Web Server NGINX trên Ubuntu và gõ địa chỉ IP của VPS lên trình duyệt để ngắm dòng chữ Welcome to nginx! kinh điển. Ở chặng này, bạn chưa cần bận tâm tới tên miền (domain), cơ sở dữ liệu hay mã nguồn WordPress. Việc nghiệm thu thành công trang chào qua địa chỉ IP thuần túy là một mẹo chia để trị cực kỳ hiệu quả của dân kỹ thuật: khi biết chắc Web Server và cổng 80 đã thông suốt, nếu bước sau gắn tên miền vào mà lỗi thì bạn biết ngay thủ phạm nằm ở tầng DNS chứ không phải tại NGINX.

Kiểm tra hiện trường trước khi cài đặt NGINX

Hành trang cần chuẩn bị rất gọn nhẹ: một VPS chạy Ubuntu 24.04, tài khoản có quyền sudo, cửa sổ SSH đang kết nối ổn định và quyền quản lý lớp tường lửa trên bảng điều khiển của nhà cung cấp. Bạn hãy ghi lại địa chỉ IP công khai (Public IPv4) của máy chủ. Lưu ý rằng con số 203.0.113.10 xuất hiện trong các câu lệnh mẫu dưới đây là địa chỉ IP dành riêng cho tài liệu hướng dẫn theo chuẩn quốc tế — khi gõ lệnh, bạn nhớ thay bằng địa chỉ IP thật của VPS mình nhé.

Trước khi cài đặt bất kỳ dịch vụ mạng nào, thói quen tốt nhất là kiểm tra xem trên máy đã có ai chiếm chỗ cổng 80 hay chưa:

hostnamectl
ip -brief address
sudo ss -ltnp

Nếu kết quả trả về cho thấy Apache2, một container Docker hoặc một bản cài NGINX nào đó đang ngồi chễm chệ ở cổng 80, bạn hãy dừng lại để tìm hiểu xem dịch vụ đó phục vụ mục đích gì. Tuyệt đối không nhắm mắt gõ lệnh gỡ bỏ phần mềm trên một máy chủ dùng chung chỉ để làm giống sách giáo khoa. Trên một máy VPS mới tinh vừa khởi tạo, danh sách cổng lắng nghe sẽ chỉ có mỗi cổng SSH (thường là 22) — đây là mảnh đất lý tưởng nhất để chúng ta bắt đầu.

Sơ đồ đường đi của trang chào: Trình duyệt gửi HTTP; IP công khai của VPS; NGINX nghe cổng 80; Trả nội dung HTML

Sơ đồ luồng yêu cầu HTTP đi từ trình duyệt tới NGINX qua địa chỉ IP do localhost.vn biên soạn.

Bước 1: Cài đặt NGINX từ kho phần mềm chính thức của Ubuntu

Bạn hãy chạy chuỗi lệnh dưới đây và quan sát kết quả phản hồi của từng bước:

sudo apt update &&
  sudo apt install nginx curl &&
  sudo systemctl enable --now nginx &&
  systemctl is-active nginx &&
  nginx -v

Như chúng ta đã biết, lệnh apt update giúp làm mới bảng danh mục gói phần mềm, tiếp đó apt install nginx curl sẽ tải và cài đặt Web Server NGINX cùng công cụ kiểm tra mạng curl từ kho chứa chính thức của Ubuntu 24.04. Ở giai đoạn làm quen cơ bản và dựng website WordPress tiêu chuẩn, phiên bản NGINX có sẵn trong kho Ubuntu LTS đã quá đủ độ ổn định và được vá lỗi bảo mật đều đặn — bạn chưa cần phải vất vả thêm các kho chứa bên ngoài chỉ để chạy đua theo số hiệu phiên bản mới nhất.

Câu lệnh cuối cùng systemctl is-active nginx bắt buộc phải trả về chữ active. Điều này chứng nhận tiến trình NGINX đã khởi chạy ngon lành bên trong máy chủ và được cấu hình tự động bật lại mỗi khi VPS khởi động (enable). Bạn cũng có thể gõ thêm nginx -v để ghi nhận số hiệu phiên bản thực tế trên máy của mình.

Bước 2: Gõ cửa hỏi thăm Web Server ngay từ bên trong VPS

Trước khi mở trình duyệt trên laptop, hãy dùng chính công cụ curl vừa cài để tự gọi vào địa chỉ nội bộ (loopback 127.0.0.1) ngay trên cửa sổ SSH của VPS:

curl -I http://127.0.0.1/
curl -sS http://127.0.0.1/ | head -n 12
sudo nginx -t

Câu lệnh curl -I đầu tiên chỉ lấy phần tiêu đề phản hồi (HTTP response headers), còn câu lệnh thứ hai lấy 12 dòng mã nguồn HTML đầu tiên mà máy chủ trả về. Trên một bản cài đặt NGINX mặc định mới tinh, bạn sẽ thấy mã trạng thái HTTP/1.1 200 OK đi kèm dòng tiêu đề quen thuộc <title>Welcome to nginx!</title>. Tại sao phải xem cả phần ruột HTML chứ không chỉ nhìn mỗi con số 200? Bởi vì bất kỳ dịch vụ web nào đang chạy cũng có thể trả về mã 200, nhưng nhìn thấy đúng nội dung trang chào mặc định mới chứng minh yêu cầu đang được xử lý bởi cấu hình mặc định của NGINX.

Trên hệ điều hành Ubuntu, các tệp cấu hình trang web (Virtual Host / Server Block) của NGINX được tổ chức rất ngăn nắp tại hai thư mục: /etc/nginx/sites-available/ (nơi cất giữ toàn bộ các bản thiết kế cấu hình) và /etc/nginx/sites-enabled/ (nơi đặt các liên kết mềm symlink để kích hoạt những trang web đang chạy thực tế). Câu lệnh sudo nginx -t ở cuối đóng vai trò người soát lỗi chính tả: nó kiểm tra toàn bộ cú pháp tệp cấu hình xem có thiếu dấu chấm phẩy ; hay ngoặc nhọn nào không trước khi bạn áp dụng thay đổi.

Console LAB-CF-02 lúc 13:08 kiểm NGINX 1.24.0 active enabled, cấu hình hợp lệ, listener cổng 80 và HTTP 200 với HTML Welcome to nginx

Ảnh chụp thực tế màn hình Console của máy chủ LAB-CF-02 vào lúc 13:08:06 ngày 01/10/2026 (UTC+7): xác nhận NGINX 1.24.0 đang ở trạng thái active/enabled, cú pháp cấu hình đạt chuẩn, cổng 80 đang lắng nghe và kết nối loopback nội bộ trả về HTTP 200 kèm mã HTML của trang chào mừng. Bấm vào ảnh để phóng to.

Bước 3: Kiểm tra cổng lắng nghe và mở chốt tường lửa cho cổng 80

Khi gọi nội bộ trong VPS đã thông nhưng muốn thế giới bên ngoài truy cập vào được, bạn hãy chạy lệnh kiểm tra trạng thái tường lửa UFW và địa chỉ lắng nghe của socket:

sudo ufw status verbose
sudo ss -ltnp '( sport = :80 )'

Nếu bạn đã làm theo bài hướng dẫn bật tường lửa trước đó, cổng 80/tcp có thể đã được mở sẵn. Trong trường hợp UFW đang active mà danh sách chưa có cổng 80, bạn chỉ cần gõ sudo ufw allow 80/tcp (và nhớ tuyệt đối không đụng chạm vào quy tắc mở cổng SSH hiện có). Đừng quên ngó qua bảng điều khiển Cloud Panel của nhà cung cấp VPS để chắc chắn lớp Cloud Firewall phía ngoài cũng đã cho phép lưu lượng đi vào cổng TCP 80.

Đồng thời, hãy nhìn vào kết quả của lệnh ss: tiến trình NGINX phải đang lắng nghe trên địa chỉ mở toàn cục là 0.0.0.0:80 (cho IPv4) hoặc [::]:80 (cho IPv6). Nếu vì lý do nào đó mà cấu hình bị sửa thành chỉ lắng nghe ở 127.0.0.1:80, thì chỉ có mình VPS tự nói chuyện được với chính nó, còn mọi truy cập từ ngoài Internet vào đều sẽ bị từ chối thẳng thừng.

Sơ đồ ba lớp cần kiểm: Service đang active; Listener nhận kết nối; UFW cho TCP 80; Cloud firewall cho TCP 80

Sơ đồ 4 chốt chặn từ ngoài vào trong cần thông suốt để hiển thị trang web ở cổng 80 do localhost.vn biên soạn.

Bước 4: Mở trình duyệt trên máy tính cá nhân để nghiệm thu kết quả

Bây giờ là lúc hưởng thành quả: hãy mở trình duyệt web trên laptop hoặc điện thoại của bạn và gõ chính xác cú pháp http://IP_VPS_CỦA_BẠN/ vào thanh địa chỉ. Mẹo nhỏ cực kỳ quan trọng: các trình duyệt hiện đại ngày nay rất hay “nhiệt tình thái quá”, tự động đổi chữ http:// thành https:// (cổng 443). Vì ở bước này chúng ta mới chỉ dựng cổng 80 và chưa cài chứng chỉ bảo mật SSL/TLS, nếu trình duyệt tự nhảy sang HTTPS thì nó sẽ báo lỗi không kết nối được ngay! Để khách quan và chính xác nhất, bạn hãy chạy thêm lệnh curl từ cửa sổ Terminal trên laptop của mình:

curl -I --connect-timeout 10 http://203.0.113.10/

(Lưu ý cho anh em dùng Windows PowerShell bản cũ: chữ curl mặc định trong PowerShell thực chất là tên viết tắt của lệnh Invoke-WebRequest, nên bạn hãy gõ rõ là curl.exe -I ... để gọi đúng công cụ curl chuẩn nhé). Khi cả lệnh curl trên laptop lẫn trình duyệt web đều trả về mã HTTP/1.1 200 OK và hiện rõ trang Welcome to nginx!, xin chúc mừng: chiếc máy chủ của bạn đã chính thức trở thành một Web Server thực thụ trên Internet!

Hãy lưu lại một tấm ảnh chụp màn hình hoặc kết quả dòng lệnh làm mốc đối chiếu. Việc nhìn thấy trang chào qua địa chỉ IP tại thời điểm này xác nhận tầng hạ tầng mạng và dịch vụ NGINX đã hoàn tất 100%, tạo nền móng vững chắc trước khi chúng ta gắn tên miền và cài đặt PHP cùng cơ sở dữ liệu ở các bài tiếp theo.

Trang Welcome to nginx hiển thị trong Chrome ngoài VPS khi mở IP LAB-CF-02 lúc 13:09 ngày 01/10/2026

Ảnh chụp toàn trang web thực tế từ trình duyệt Chrome bên ngoài VPS khi truy cập vào địa chỉ http://103.82.26.183/ của máy LAB-CF-02 lúc 13:09 ngày 01/10/2026 (UTC+7). Bấm vào ảnh để xem kích thước gốc.

Bảng bắt bệnh nhanh khi mở IP trên trình duyệt mà trang không tải

Nếu bạn gõ IP lên trình duyệt mà không thấy trang chào hiện ra, đừng vội cài lại máy. Hãy nhìn vào triệu chứng cụ thể và đối chiếu theo bảng chẩn đoán dưới đây:

Triệu chứng gặp phải Khu vực nghi vấn đầu tiên Hướng xử lý chuẩn xác
Chạy curl 127.0.0.1 ngay trên VPS cũng báo lỗi Dịch vụ NGINX đang dừng hoặc lỗi cấu hình Kiểm tra nhật ký journalctl và chạy lệnh soát lỗi sudo nginx -t
Gọi 127.0.0.1 trên VPS thì được, nhưng gọi từ laptop lại báo Timeout Gõ nhầm địa chỉ IP hoặc bị chặn ở 2 lớp Firewall Đối chiếu lại IP công khai của VPS, mở cổng 80/tcp trên cả UFW lẫn Cloud Firewall
Báo lỗi Connection refused ngay lập tức Cổng lắng nghe (listener) hoặc trình duyệt tự nhảy sang HTTPS Kiểm tra kết quả lệnh ss xem NGINX có nghe ở 0.0.0.0:80 không, và ép trình duyệt dùng đúng http://
Trả về lỗi HTTP 403 Forbidden Sai đường dẫn thư mục gốc (root), thiếu file index hoặc sai quyền đọc file Mở tệp /var/log/nginx/error.log đọc dòng báo lỗi chi tiết để chỉnh lại quyền thư mục
Hiển thị ra một trang web lạ hoắc khác dự kiến Cấu hình default_server hoặc dính bộ nhớ đệm (cache/proxy) Kiểm tra các tệp trong /etc/nginx/sites-enabled/ xem Server Block nào đang đứng đầu nhận request

Hai câu lệnh đọc nhật ký đắc lực nhất khi gỡ rối NGINX là sudo journalctl -u nginx -n 50 --no-pager (khi dịch vụ không chịu khởi động) và sudo tail -n 50 /var/log/nginx/error.log (khi dịch vụ đã chạy nhưng trả mã lỗi HTTP). Nhớ che bớt các địa chỉ IP cá nhân nếu bạn cần copy log lên mạng để hỏi bài nhé.

Sơ đồ bằng chứng hoàn thành: Trang chào đúng máy; HTTP từ mạng ngoài; Phiên bản NGINX thực; Log và ảnh đã che bí mật

Sơ đồ 4 tiêu chí nghiệm thu hoàn thành bước cài đặt Web Server cơ bản do localhost.vn biên soạn.

Hồ sơ thực nghiệm trên máy chủ LAB-CF-02 ngày 01/10/2026

Vào lúc 03:42 sáng ngày 01/10/2026 (giờ Việt Nam), đợt rà soát chỉ đọc trên máy chủ LAB-CF-02 ghi nhận các thông số vận hành thực tế như sau:

Hạng mục kiểm chứng Kết quả thu được trên thực tế
Phiên bản phần mềm NGINX 1.24.0 (cài đặt từ kho gói chuẩn của Ubuntu 24.04)
Trạng thái dịch vụ systemd Đang chạy (active) và đã bật khởi động cùng hệ thống (enabled)
Kiểm tra cú pháp cấu hình Lệnh nginx -t báo syntax is ok và test is successful
Truy vấn nội bộ http://127.0.0.1/ Trả về mã HTTP 200 cùng nội dung tiêu đề Welcome to nginx!
Truy vấn qua IP công khai từ bên trong VPS Trả về mã HTTP 200; mã nguồn HTML và chuỗi băm SHA-256 trùng khớp 100% với kết quả loopback

Một phút sau đó, vào lúc 03:43 cùng ngày, trình duyệt Chrome từ máy tính bên ngoài VPS đã mở trực tiếp địa chỉ http://103.82.26.183/ và hiển thị rõ ràng tiêu đề Welcome to nginx!. Một điểm kỹ thuật rất thú vị trên máy LAB-CF-02 lúc này là: khi khách truy cập bằng địa chỉ IP trần thì NGINX trả về trang chào mặc định, nhưng khi truy cập bằng tên miền riêng thì NGINX lại dẫn vào đúng trang WordPress! Đó chính là sức mạnh của cơ chế Virtual Host (Server Block) phân luồng theo Host header — vì vậy, nếu sau này bạn thấy gõ IP vẫn hiện trang chào NGINX thì đừng hoảng hốt tưởng trang WordPress của mình đã bốc hơi nhé.

Đến buổi chiều cùng ngày, vào lúc 13:08:06 và 13:09, chúng tôi thực hiện thêm một đợt nghiệm thu bổ sung để ghi lại bộ ảnh chụp màn hình Console và trình duyệt Chrome đã minh họa ở Bước 2 và Bước 4. Kết quả xác nhận NGINX 1.24.0 vẫn hoạt động bền bỉ, lắng nghe trên cả 0.0.0.0:80 lẫn [::]:80, trả về đúng 615 byte nội dung HTML trang chào mừng với mã trạng thái HTTP 200.

Nguyên tắc hoàn tác (Rollback) và Câu hỏi thường gặp (FAQ)

Nếu trong quá trình vọc vạch tệp cấu hình NGINX mà bạn lỡ làm phát sinh lỗi, nguyên tắc hoàn tác an toàn nhất là chép đè lại tệp cấu hình gốc từ bản sao lưu, gõ sudo nginx -t để xác nhận hết lỗi cú pháp rồi mới chạy sudo systemctl reload nginx (lệnh reload giúp nạp lại cấu hình êm ái mà không làm đứt các kết nối hiện tại). Nếu chỉ muốn tạm dừng Web Server trên máy thử nghiệm, bạn dùng lệnh sudo systemctl stop nginx. Tuyệt đối tránh thói quen xóa bừa thư mục /var/www trên máy chủ đang có dữ liệu.

Tôi có nên cài cả Apache lẫn NGINX lên cùng một VPS cho mạnh không? Hoàn toàn không cần thiết trong lộ trình này! Nếu cài cả hai mà không cấu hình đổi cổng, chúng sẽ tranh giành nhau cổng 80 và khiến dịch vụ sau không thể khởi động được. Chỉ một mình NGINX kết hợp cùng PHP-FPM đã thừa sức cân mượt mà các website WordPress tốc độ cao.

Thấy trang Welcome to nginx! rồi thì tôi vào trang quản trị WordPress ở đường dẫn nào? Bình tĩnh nào người anh em! Lúc này chúng ta mới chỉ dựng xong phần khung nhà (Web Server tĩnh), chưa hề cài đặt ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MariaDB hay tải bộ mã nguồn WordPress về máy. Các mảnh ghép đó sẽ lần lượt xuất hiện ở những bài kế tiếp.

Tại sao tôi ping IP VPS thấy phản hồi rất nhanh mà mở trình duyệt lại không lên trang web? Vì lệnh ping dùng giao thức ICMP, còn trình duyệt web nói chuyện bằng giao thức HTTP qua cổng TCP 80. Để trang web hiện lên, cả tường lửa lẫn tiến trình NGINX đều phải mở cửa đón khách ở cổng 80.

Tài liệu tham khảo và chặng tiếp theo

Tài liệu hướng dẫn chính thức của Ubuntu về cài đặt NGINX và cẩm nang NGINX Beginner’s Guide đều đã được chúng tôi rà soát, đối chiếu lại vào ngày 01/10/2026. Toàn bộ bảng chẩn đoán lỗi và quy trình nghiệm thu hai chiều (loopback nội bộ và mạng ngoài) được thiết kế riêng cho chuỗi bài thực hành này.

Bạn có thể xem lại bức tranh tổng thể tại lộ trình cài đặt WordPress trên VPS từ A đến Z. Sau khi trang chào trên IP đã hoạt động ngon lành, mời bạn bước sang bài tiếp theo: Trỏ tên miền thử nghiệm về VPS từ A đến Z và xác nhận kết quả thực tế.

Tài liệu tham khảo & Kiểm chứng

CẦN KỸ SƯ HỖ TRỢ TRỰC TIẾP? Đang làm theo hướng dẫn nhưng vướng lỗi hệ thống hoặc sợ đụng chạm dữ liệu đang chạy?

Gửi địa chỉ URL qua Zalo để kỹ thuật viên localhost.vn kiểm tra sơ bộ miễn phí trước khi quyết định can thiệp.

Xem bảng dịch vụ
Góc thực chiến localhost.vn

Mọi hướng dẫn đều dựa trên số liệu đo đạc, log thực tế và nguyên tắc "luôn có đường lùi (Snapshot/Backup) trước khi gõ lệnh".

Nguyên tắc biên tập & Minh bạch ↗