Khi quản lý một web server, việc tổ chức cấu trúc thư mục một cách khoa học và tối ưu là vô cùng quan trọng. Nginx, một trong những web server phổ biến nhất hiện nay, sử dụng một khái niệm gọi là “thư mục gốc” (root directory) để xác định nơi lưu trữ các tệp tin của website sẽ được phục vụ cho người dùng. Mặc định, trên Ubuntu là gì 20.04, thư mục này thường là /var/www/html. Tuy nhiên, vì nhiều lý do như mở rộng dung lượng lưu trữ, phân chia dự án, hay đơn giản là để quản lý tốt hơn, bạn có thể cần di chuyển thư mục gốc này sang một vị trí khác.
Việc thay đổi này không chỉ đơn giản là sao chép và dán. Nó đòi hỏi bạn phải cập nhật file cấu hình của Nginx, điều chỉnh lại quyền sở hữu và quyền truy cập một cách chính xác để đảm bảo website vẫn hoạt động ổn định và an toàn. Bài viết này sẽ hướng dẫn bạn chi tiết từng bước, từ việc xác định vị trí thư mục gốc hiện tại đến việc di chuyển, cấu hình và xử lý các lỗi thường gặp một cách an toàn và hiệu quả trên hệ điều hành Ubuntu 20.04. Hãy cùng AZWEB bắt đầu hành trình tối ưu hóa máy chủ của bạn.
Giới thiệu về thư mục gốc của Nginx và vai trò trong cấu hình web server
Nginx là gì một web server mã nguồn mở hiệu suất cao, nổi tiếng với khả năng xử lý đồng thời hàng ngàn kết nối một cách ổn định và tiêu thụ ít tài nguyên hệ thống. Một trong những chỉ thị (directive) cơ bản và quan trọng nhất trong cấu hình Nginx chính là root. Chỉ thị này có nhiệm vụ định nghĩa thư mục gốc, nơi Nginx sẽ tìm kiếm và phục vụ các tệp tin khi nhận được yêu cầu từ trình duyệt của người dùng.
Tầm quan trọng của thư mục gốc là không thể phủ nhận. Khi một người dùng truy cập vào địa chỉ http://yourdomain.com/about.html, Nginx sẽ dựa vào đường dẫn được khai báo trong chỉ thị root để tìm tệp about.html. Ví dụ, nếu cấu hình của bạn là root /var/www/my-website;, Nginx sẽ tìm tệp tại đường dẫn /var/www/my-website/about.html trên máy chủ để trả về cho người dùng. Do đó, việc thiết lập đúng thư mục gốc là yếu tố cốt lõi để website của bạn có thể hiển thị nội dung chính xác.
Tuy nhiên, trong quá trình vận hành và phát triển, việc giữ thư mục gốc ở vị trí mặc định (/var/www/html) không phải lúc nào cũng là lựa chọn tối ưu. Bạn có thể gặp phải các vấn đề như ổ đĩa chính bị đầy, cần tách biệt dữ liệu của các website khác nhau, hoặc muốn lưu trữ mã nguồn trên một phân vùng riêng có cơ chế sao lưu đặc biệt. Lúc này, di chuyển thư mục root Nginx trên Ubuntu 20.04 trở thành một nhu cầu thiết thực. Bài viết này sẽ cung cấp một lộ trình rõ ràng, bao gồm việc xác định vị trí hiện tại, sao chép dữ liệu, cập nhật cấu hình, và xử lý các sự cố tiềm ẩn để đảm bảo quá trình chuyển đổi diễn ra suôn sẻ.
Cách xác định vị trí thư mục root hiện tại trên Ubuntu 20.04
Trước khi có thể di chuyển thư mục gốc, bước đầu tiên và quan trọng nhất là bạn phải biết chính xác nó đang nằm ở đâu. Thông thường, vị trí này được khai báo trong các tệp cấu hình của Nginx. Dưới đây là hai phương pháp phổ biến và hiệu quả để bạn xác định vị trí thư mục gốc hiện tại trên hệ thống Ubuntu 20.04 của mình.
Kiểm tra file cấu hình Nginx chính (nginx.conf)
Cách tiếp cận trực tiếp nhất là kiểm tra các tệp cấu hình của Nginx. Trên Ubuntu và các hệ điều hành dựa trên Debian, cấu trúc thư mục cấu hình của Nginx khá chuẩn hóa.
Tệp cấu hình chính của Nginx là nginx.conf, thường nằm tại /etc/nginx/nginx.conf. Tệp này chứa các thiết lập toàn cục cho web server. Tuy nhiên, trong hầu hết các trường hợp, chỉ thị root cho từng trang web cụ thể không nằm trực tiếp ở đây. Thay vào đó, tệp nginx.conf thường sử dụng chỉ thị include để nạp các tệp cấu hình từ thư mục khác, phổ biến nhất là /etc/nginx/sites-enabled/.

Thư mục /etc/nginx/sites-enabled/ chứa các liên kết tượng trưng (symbolic links) đến các tệp cấu hình thực tế nằm trong /etc/nginx/sites-available/. Đây là nơi bạn định nghĩa các khối server cho từng website mà bạn host. Để tìm thư mục gốc, bạn cần mở tệp cấu hình tương ứng với trang web của mình (ví dụ: /etc/nginx/sites-enabled/yourdomain.com). Bạn có thể sử dụng một trình soạn thảo văn bản như nano hoặc vim:
sudo nano /etc/nginx/sites-enabled/default
Bên trong tệp này, hãy tìm khối server và tìm dòng bắt đầu bằng từ khóa root. Đường dẫn theo sau chính là vị trí thư mục gốc hiện tại của trang web đó. Ví dụ: root /var/www/html;.
Sử dụng lệnh để xác định thư mục root
Nếu bạn quản lý nhiều trang web hoặc cấu trúc tệp cấu hình phức tạp, việc mở từng tệp để kiểm tra có thể tốn thời gian. Một cách nhanh hơn và hiệu quả hơn là sử dụng các công cụ dòng lệnh của Linux, đặc biệt là lệnh grep.
Lệnh grep cho phép bạn tìm kiếm một chuỗi văn bản cụ thể trong các tệp. Để tìm tất cả các khai báo root trong cấu hình Nginx, bạn có thể chạy lệnh sau:
grep -R "root" /etc/nginx/
Lệnh này sẽ tìm kiếm đệ quy (cờ -R) chuỗi “root” trong tất cả các tệp và thư mục con của /etc/nginx/ và hiển thị các dòng chứa từ khóa đó cùng với tên tệp.
Kết quả trả về có thể trông giống như sau:
/etc/nginx/sites-enabled/default: root /var/www/html;
/etc/nginx/sites-available/default: root /var/www/html;
Kết quả này cho bạn thấy rõ ràng rằng chỉ thị root được định nghĩa trong tệp /etc/nginx/sites-enabled/default và giá trị của nó là /var/www/html. Đây chính là thư mục gốc hiện tại bạn cần tìm. Bằng cách này, bạn có thể nhanh chóng xác nhận vị trí mà không cần phải mở và đọc từng tệp cấu hình một cách thủ công.
Các bước di chuyển thư mục root Nginx sang vị trí mới an toàn
Sau khi đã xác định chính xác vị trí thư mục gốc hiện tại, chúng ta sẽ tiến hành quá trình di chuyển nó sang một vị trí mới. Quá trình này cần được thực hiện cẩn thận qua hai giai đoạn chính: chuẩn bị thư mục mới và cập nhật cấu hình Nginx để nó nhận biết được sự thay đổi này.
Chuẩn bị thư mục mới
Bước đầu tiên là tạo ra ngôi nhà mới cho các tệp tin website của bạn và đảm bảo toàn bộ nội dung được chuyển qua một cách nguyên vẹn.
- Tạo thư mục ở vị trí mới: Giả sử bạn muốn di chuyển thư mục gốc đến
/var/www/new-website. Bạn có thể tạo thư mục này bằng lệnhmkdirvới tùy chọn-pđể tạo cả các thư mục cha nếu chúng chưa tồn tại.
sudo mkdir -p /var/www/new-website

- Sao chép hoặc chuyển toàn bộ nội dung: Bây giờ, bạn cần sao chép tất cả các tệp và thư mục từ vị trí cũ (ví dụ:
/var/www/html) sang vị trí mới. Sử dụng lệnhrsynclà lựa chọn được khuyến khích vì nó giữ lại được quyền sở hữu và các thuộc tính của tệp, đồng thời cung cấp phản hồi về tiến trình.
sudo rsync -av /var/www/html/ /var/www/new-website/
Lưu ý dấu / ở cuối đường dẫn nguồn (/var/www/html/). Điều này đảm bảo rằng nội dung bên trong thư mục html được sao chép, chứ không phải bản thân thư mục html. Cờ -a là chế độ lưu trữ (archive mode), giúp bảo toàn quyền, chủ sở hữu, và các thuộc tính khác. Cờ -v (verbose) hiển thị chi tiết quá trình sao chép.
Cập nhật cấu hình để trỏ đến thư mục root mới
Khi dữ liệu đã nằm an toàn ở vị trí mới, bạn cần “chỉ đường” cho Nginx đến địa chỉ này.
- Mở file cấu hình Nginx của site cần chỉnh sửa: Sử dụng trình soạn thảo văn bản như
nanođể mở tệp cấu hình bạn đã xác định ở bước trước.
sudo nano /etc/nginx/sites-enabled/default

- Thay đổi đường dẫn thư mục root: Bên trong tệp, tìm dòng
root /var/www/html;và thay đổi nó thành đường dẫn mới của bạn.
# Dòng cũ
# root /var/www/html;
# Dòng mới
root /var/www/new-website;
- Kiểm tra cú pháp và lưu file cấu hình: Sau khi chỉnh sửa, hãy lưu và đóng tệp (trong
nano, nhấnCtrl + X, sau đóY, vàEnter). Trước khi khởi động lại Nginx, bạn nên kiểm tra xem có lỗi cú pháp nào trong các tệp cấu hình hay không. Đây là một bước cực kỳ quan trọng để tránh làm sập web server.
sudo nginx -t
Nếu mọi thứ đều đúng, bạn sẽ nhận được thông báo như sau:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nếu có lỗi, terminal sẽ chỉ rõ vị trí và loại lỗi để bạn sửa lại. Khi đã hoàn tất các bước này, bạn đã gần như sẵn sàng để áp dụng thay đổi.
Điều chỉnh quyền truy cập và quyền sở hữu thư mục mới
Sau khi đã sao chép dữ liệu và cập nhật đường dẫn trong cấu hình Nginx, một bước cực kỳ quan trọng nhưng thường bị bỏ qua là thiết lập quyền sở hữu (ownership) và quyền truy cập (permissions) cho thư mục mới. Nếu không thực hiện đúng bước này, Nginx sẽ không có quyền đọc các tệp tin trong thư mục mới, dẫn đến lỗi “403 Forbidden” hiển thị cho người dùng.
Điều chỉnh owner và group phù hợp với user chạy Nginx (thường là www-data)
Trên các hệ thống dựa trên Debian như Ubuntu, Nginx mặc định chạy dưới quyền của người dùng www-data và nhóm www-data. Do đó, bạn cần đảm bảo rằng người dùng này có quyền sở hữu thư mục gốc mới và tất cả các tệp, thư mục con bên trong nó.
Để thay đổi quyền sở hữu, chúng ta sử dụng lệnh chown. Cờ -R (recursive) sẽ áp dụng thay đổi này cho toàn bộ cây thư mục.
sudo chown -R www-data:www-data /var/www/new-website
Lệnh này chỉ định rằng người dùng www-data và nhóm www-data là chủ sở hữu của thư mục /var/www/new-website và tất cả mọi thứ bên trong nó. Đây là bước nền tảng để Nginx có thể bắt đầu tương tác với các tệp tin của bạn.

Thiết lập quyền truy cập thư mục an toàn, tránh lỗi truy cập
Quyền sở hữu chỉ là một nửa câu chuyện. Bạn còn cần thiết lập quyền truy cập (đọc, ghi, thực thi) một cách hợp lý để đảm bảo cả tính bảo mật và khả năng hoạt động. Chúng ta sử dụng lệnh chmod cho việc này.
Một cấu hình quyền phổ biến và an toàn cho các trang web là:
- 755 cho các thư mục: Chủ sở hữu có thể đọc, ghi, và thực thi (di chuyển vào thư mục). Nhóm và những người khác chỉ có quyền đọc và thực thi.
- 644 cho các tệp tin: Chủ sở hữu có thể đọc và ghi. Nhóm và những người khác chỉ có thể đọc.
Bạn có thể áp dụng các quyền này một cách hiệu quả bằng cách kết hợp lệnh find và chmod.
Đầu tiên, đặt quyền cho tất cả các thư mục con thành 755:
sudo find /var/www/new-website -type d -exec chmod 755 {} \;
Tiếp theo, đặt quyền cho tất cả các tệp tin thành 644:
sudo find /var/www/new-website -type f -exec chmod 644 {} \;

Việc thiết lập quyền một cách chi tiết như vậy đảm bảo rằng Nginx có đủ quyền để đọc và phục vụ các tệp tin, trong khi vẫn ngăn chặn các thay đổi không mong muốn từ những người dùng khác trên hệ thống. Hoàn thành bước này, bạn đã giải quyết được nguyên nhân phổ biến nhất gây ra lỗi sau khi di chuyển thư mục gốc.
Khởi động lại dịch vụ Nginx để áp dụng thay đổi
Sau khi bạn đã di chuyển thành công các tệp, cập nhật đường dẫn trong tệp cấu hình và thiết lập lại quyền truy cập một cách chính xác, bước cuối cùng là ra lệnh cho Nginx áp dụng tất cả những thay đổi này. Quá trình này bao gồm việc kiểm tra lại cấu hình lần cuối và khởi động lại dịch vụ Nginx.
Trước tiên, dù bạn đã làm ở bước trước, việc chạy lại lệnh kiểm tra cấu hình không bao giờ là thừa. Nó đảm bảo rằng không có bất kỳ thay đổi nào dù là nhỏ nhất gây ra lỗi cú pháp. Đây là tấm lưới an toàn cuối cùng trước khi bạn thực sự tác động đến dịch vụ đang chạy.
sudo nginx -t
Nếu bạn nhận được thông báo “syntax is ok” và “test is successful”, bạn có thể tự tin tiến đến bước tiếp theo. Nếu có lỗi, hệ thống sẽ chỉ rõ tệp và dòng bị lỗi để bạn quay lại và sửa chữa.

Khi cấu hình đã được xác nhận là hợp lệ, bạn có thể tiến hành khởi động lại Nginx. Trên Ubuntu 20.04, hệ thống sử dụng systemd để quản lý các dịch vụ, vì vậy bạn sẽ dùng lệnh systemctl.
sudo systemctl restart nginx
Lệnh này sẽ dừng dịch vụ Nginx hiện tại và khởi động lại nó với cấu hình mới nhất. Quá trình này thường chỉ mất vài giây. Sau khi lệnh thực thi xong, Nginx sẽ bắt đầu phục vụ các tệp từ thư mục gốc mới mà bạn đã chỉ định.
Để chắc chắn rằng dịch vụ đã khởi động lại thành công và đang chạy ổn định, bạn có thể kiểm tra trạng thái của nó:
sudo systemctl status nginx
Kết quả trả về nên hiển thị trạng thái active (running) màu xanh lá. Điều này xác nhận rằng Nginx đã hoạt động trở lại bình thường với cấu hình mới. Bây giờ, bạn có thể mở trình duyệt và truy cập vào trang web của mình để kiểm tra xem mọi thứ có hiển thị đúng như mong đợi từ vị trí mới hay không.
Kiểm tra và xử lý lỗi thường gặp sau khi di chuyển thư mục root
Ngay cả khi bạn đã tuân thủ cẩn thận các bước, đôi khi vẫn có những vấn đề không mong muốn xảy ra. Việc biết cách chẩn đoán và khắc phục các lỗi phổ biến sẽ giúp bạn nhanh chóng đưa website trở lại hoạt động. Dưới đây là hai lỗi thường gặp nhất sau khi di chuyển thư mục gốc của Nginx và cách xử lý chúng.
Lỗi 403 Forbidden do quyền truy cập không đúng
Đây là lỗi phổ biến nhất. Khi bạn truy cập website và nhận được trang thông báo “403 Forbidden”, điều đó có nghĩa là Nginx đã tìm thấy tệp bạn yêu cầu nhưng nó không có quyền để đọc và phục vụ tệp đó.
- Nguyên nhân:
- Quyền sở hữu sai: Người dùng
www-data(user mà Nginx đang chạy) không phải là chủ sở hữu của thư mục gốc mới hoặc các tệp bên trong. - Quyền truy cập không đủ: Các thư mục không có quyền thực thi (
x) hoặc các tệp không có quyền đọc (r) cho người dùngwww-data. - SELinux/AppArmor: Trên một số hệ thống, các module bảo mật như SELinux hoặc AppArmor có thể chặn Nginx truy cập vào các đường dẫn không chuẩn.
- Cách khắc phục:
- Kiểm tra lại quyền sở hữu: Chạy lại lệnh
sudo chown -R www-data:www-data /path/to/new/root. - Kiểm tra lại quyền truy cập: Đảm bảo các thư mục có quyền
755và các tệp có quyền644. Chạy lại các lệnhfind ... -exec chmod ...như đã hướng dẫn ở phần trước. - Kiểm tra quyền của đường dẫn cha: Đảm bảo tất cả các thư mục cha trong đường dẫn đến thư mục gốc mới (ví dụ:
/var,/var/www) đều phải có quyền thực thi (+x) cho “others” để Nginx có thể đi qua chúng. Bạn có thể kiểm tra bằng lệnhnamei -om /path/to/new/root/index.html. - Kiểm tra log lỗi của Nginx: Xem tệp log tại
/var/log/nginx/error.logđể có thông báo lỗi chi tiết hơn, thường sẽ có dòng “permission denied”.

Lỗi cấu hình hoặc không tìm thấy thư mục root mới
Lỗi này xảy ra khi Nginx không thể khởi động lại hoặc khi bạn thấy trang lỗi “404 Not Found” ở khắp mọi nơi, ngay cả với trang chủ. Điều này cho thấy Nginx đang gặp vấn đề với chính tệp cấu hình hoặc không thể tìm thấy thư mục mà bạn đã chỉ định.
- Nguyên nhân:
- Lỗi cú pháp: Có lỗi đánh máy trong tệp cấu hình (ví dụ: thiếu dấu
;ở cuối dòngroot). - Đường dẫn sai: Đường dẫn đến thư mục gốc mới trong tệp cấu hình không chính xác.
- Chưa khởi động lại Nginx: Bạn đã thay đổi cấu hình nhưng quên không chạy
sudo systemctl restart nginx. - Cách khắc phục:
- Luôn kiểm tra cú pháp trước: Chạy lệnh
sudo nginx -ttrước khi khởi động lại. Nó sẽ báo cho bạn biết chính xác tệp và dòng nào bị lỗi nếu có. - Kiểm tra lại đường dẫn: Mở lại tệp cấu hình (
/etc/nginx/sites-enabled/your-site) và so sánh đường dẫn bạn đã nhập với đường dẫn thực tế của thư mục mới. Hãy chắc chắn không có lỗi chính tả. - Kiểm tra log lỗi: Tệp
/var/log/nginx/error.logcũng sẽ cung cấp thông tin hữu ích nếu Nginx không thể tìm thấy thư mục được chỉ định, với các thông báo như “directory … not found”.
Bằng cách tiếp cận một cách có hệ thống và kiểm tra các nguyên nhân tiềm ẩn, bạn có thể dễ dàng giải quyết hầu hết các vấn đề phát sinh sau quá trình di chuyển.
Best Practices
Việc di chuyển thư mục gốc của Nginx là một tác vụ hệ thống quan trọng. Để đảm bảo quá trình diễn ra suôn sẻ, giảm thiểu rủi ro và duy trì một hệ thống bảo mật, ổn định, bạn nên tuân thủ các thực hành tốt nhất sau đây. Đây là những kinh nghiệm được đúc kết giúp bạn tránh được những sai lầm phổ biến.
- Luôn sao lưu file cấu hình trước khi chỉnh sửa: Đây là quy tắc vàng trong quản trị hệ thống. Trước khi mở bất kỳ tệp cấu hình nào để chỉnh sửa, hãy tạo một bản sao lưu. Một lệnh đơn giản như
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bakcó thể cứu bạn khỏi nhiều giờ khắc phục sự cố nếu có sai sót xảy ra. Nếu bạn làm hỏng tệp, bạn chỉ cần khôi phục lại từ bản sao lưu. Tham khảo thêm Backup là gì để hiểu kỹ hơn về các thủ thuật sao lưu dữ liệu. - Kiểm tra kỹ quyền truy cập thư mục sau khi di chuyển: Lỗi quyền là vấn đề phổ biến nhất. Sau khi dùng
chownvàchmod, hãy kiểm tra lại bằng lệnhls -l /path/to/new/rootđể xem quyền sở hữu và quyền truy cập đã được áp dụng đúng hay chưa. Đảm bảo người dùngwww-datacó đủ quyền để đọc và thực thi trên cây thư mục. - Không đặt root vào thư mục nhạy cảm hoặc không được phép truy cập: Tuyệt đối không bao giờ trỏ thư mục gốc của website vào các thư mục hệ thống như
/etc,/root, hoặc/tmp. Điều này tạo ra một lỗ hổng bảo mật nghiêm trọng, có thể làm lộ thông tin nhạy cảm hoặc cho phép kẻ tấn công thực thi mã độc. Hãy luôn đặt thư mục gốc trong các đường dẫn được quy hoạch cho dữ liệu web như/var/www,/srv, hoặc một phân vùng dữ liệu riêng biệt. - Kiểm tra kỹ cú pháp cấu hình trước khi khởi động lại dịch vụ: Lệnh
sudo nginx -tlà người bạn tốt nhất của bạn. Hãy biến nó thành một thói quen: mỗi khi bạn lưu một tệp cấu hình Nginx, hãy chạy lệnh này ngay lập tức. Nó sẽ phát hiện các lỗi cú pháp ngay lập an toàn trước khi bạn áp dụng cấu hình mới và gây gián đoạn dịch vụ. Chỉ khi nhận được thông báo “test is successful”, bạn mới nên tiến hành khởi động lại Nginx.
Bằng cách áp dụng những thực hành tốt này, bạn không chỉ đảm bảo quá trình di chuyển thư mục diễn ra thành công mà còn góp phần xây dựng một hệ thống máy chủ web mạnh mẽ, an toàn và dễ quản lý hơn trong dài hạn.
Kết luận
Việc di chuyển thư mục gốc của Nginx trên Ubuntu 20.04 là một kỹ năng quản trị máy chủ hữu ích, cho phép bạn linh hoạt hơn trong việc tổ chức cấu trúc dữ liệu, quản lý không gian lưu trữ và tối ưu hóa hiệu suất. Mặc dù quá trình này có vẻ phức tạp, nhưng khi được chia nhỏ thành các bước cụ thể, nó trở nên hoàn toàn có thể quản lý được.
Chúng ta đã cùng nhau đi qua toàn bộ quy trình, từ việc xác định chính xác vị trí thư mục gốc hiện tại bằng cách kiểm tra file cấu hình hoặc dùng lệnh grep, cho đến các bước thực thi di chuyển. Cụ thể là tạo thư mục mới, sao chép dữ liệu một cách an toàn bằng rsync, cập nhật đường dẫn trong file cấu hình của Nginx, và quan trọng nhất là điều chỉnh quyền sở hữu và quyền truy cập bằng chown và chmod để tránh lỗi “403 Forbidden”. Cuối cùng, việc kiểm tra cú pháp với nginx -t trước khi khởi động lại dịch vụ là bước không thể thiếu để đảm bảo quá trình chuyển đổi diễn ra suôn sẻ.
Điều quan trọng nhất cần nhấn mạnh là sự cẩn thận. Luôn sao lưu cấu hình, kiểm tra kỹ lưỡng từng câu lệnh và hiểu rõ tác dụng của chúng. Nếu có thể, hãy luôn thực hành trên một môi trường thử nghiệm (staging environment) trước khi áp dụng bất kỳ thay đổi nào trên máy chủ sản phẩm (production server). Điều này sẽ giúp bạn làm quen với quy trình và lường trước được các vấn đề tiềm ẩn.
AZWEB hy vọng rằng bài viết hướng dẫn chi tiết này đã cung cấp cho bạn kiến thức và sự tự tin để thực hiện việc di chuyển thư mục gốc Nginx một cách hiệu quả. Nếu bạn thấy hướng dẫn này hữu ích, đừng ngần ngại áp dụng cho dự án của mình và chia sẻ bài viết để giúp đỡ những người khác có cùng nhu cầu. Chúc bạn thành công