Mục lục

Không có mục lục
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Cách di chuyển Nginx Web Root đến vị trí mới trên Ubuntu 20.04

Ngày đăng: 17 tháng 11 năm 2022

Ubuntu

Giới thiệu

Trên Ubuntu, máy chủ web Nginx lưu trữ tài liệu của nó trong /var/www/html, thường nằm trên hệ thống tệp gốc (root filesystem) cùng với phần còn lại của hệ điều hành. Tuy nhiên, đôi khi, thật hữu ích khi di chuyển document root đến một vị trí khác, chẳng hạn như một hệ thống tệp được gắn kết riêng biệt. Ví dụ: nếu bạn phục vụ nhiều trang web từ cùng một phiên bản Nginx, việc đặt document root của mỗi trang web trên ổ đĩa riêng cho phép bạn mở rộng quy mô để đáp ứng nhu cầu của một trang web hoặc ứng dụng khách cụ thể.

Trong hướng dẫn này, bạn sẽ di chuyển Nginx document root đến một vị trí mới.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn sẽ cần:

  • Máy chủ Ubuntu 20.04 và non-root user có đặc quyền sudo. Bạn có thể tìm hiểu thêm về cách thiết lập user với các đặc quyền này trong hướng dẫn Thiết lập máy chủ ban đầu với Ubuntu 20.04 của chúng tôi.
  • Đã cài đặt Nginx, làm theo Cách cài đặt Nginx trên Ubuntu 20.04.
  • Chứng chỉ TLS/SSL được thiết lập cấu hình cho máy chủ của bạn. Bạn có ba lựa chọn:
  1. Bạn có thể nhận chứng chỉ miễn phí từ Let's Encrypt bằng cách làm theo Cách bảo mật Nginx bằng Let's Encrypt trên Ubuntu 20.04.
  2. Bạn cũng có thể tạo và thiết lập cấu hình chứng chỉ tự ký bằng cách làm theo Cách tạo chứng chỉ SSL tự ký cho Nginx trong Ubuntu 20.04.
  • Bạn có thể mua một cái từ nhà cung cấp khác và thiết lập cấu hình Nginx để sử dụng nó bằng cách làm theo Bước 3 và 4 của Cách tạo Chứng chỉ SSL tự ký cho Nginx trong Ubuntu 20.04.

Chúng ta sẽ sử dụng tên miền your_domain trong hướng dẫn này, nhưng bạn nên thay thế tên miền này bằng tên miền của riêng bạn.

  • Một vị trí mới cho document root của bạn. Trong hướng dẫn này, chúng ta sẽ sử dụng thư mục /mnt/volume-nyc3-01 cho vị trí mới của chúng ta. Tuy nhiên, vị trí document root mới của bạn có thể thiết lập cấu hình dựa trên nhu cầu của bạn. Nếu bạn đang di chuyển document root của mình sang một thiết bị lưu trữ khác, bạn sẽ muốn chọn một vị trí bên dưới điểm gắn kết của thiết bị.

Bước 1: Sao chép tệp vào vị trí mới

Trên bản cài đặt Nginx mới, document root được đặt tại /var/www/html. Tuy nhiên, bằng cách làm theo hướng dẫn điều kiện tiên quyết, bạn đã tạo một document root mới, /var/www/your_domain/html. Bạn cũng có thể có các document root bổ sung. Trong bước này, chúng ta sẽ thiết lập vị trí document root và sao chép các tệp có liên quan sang vị trí mới của chúng.

Bạn có thể tìm kiếm vị trí document root của mình bằng grep. Hãy tìm kiếm trong thư mục /etc/nginx/sites-enabled để giới hạn sự tập trung của chúng ta vào các trang đang hoạt động. Cờ -R đảm bảo rằng grep sẽ in cả dòng có chỉ thị root và tên tệp đầy đủ trong đầu ra của nó:

  1. grep -R "root" /etc/nginx/sites-enabled

Nếu bạn làm theo hướng dẫn điều kiện tiên quyết trên một máy chủ mới, kết quả sẽ giống như sau:

Output
/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html; /etc/nginx/sites-enabled/default: root /var/www/html; /etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root /etc/nginx/sites-enabled/default:# root /var/www/your_domain;

Nếu bạn đã thiết lập từ trước, thì kết quả của bạn có thể khác với kết quả hiển thị ở đây. Trong cả hai trường hợp, bạn có thể sử dụng phản hồi từ grep để đảm bảo rằng bạn đang di chuyển các tệp mong muốn và cập nhật các tệp cấu hình thích hợp.

Bây giờ bạn đã xác nhận vị trí document root của mình, bạn có thể sao chép các tệp sang vị trí mới của chúng bằng rsync. Việc sử dụng cờ -a sẽ duy trì quyền và các thuộc tính thư mục khác, trong khi -v cung cấp đầu ra chi tiết để bạn có thể theo dõi tiến trình đồng bộ hóa:

Lưu ý: Đảm bảo không có dấu gạch chéo ở cuối thư mục, dấu gạch chéo này có thể được thêm vào nếu bạn sử dụng tính năng hoàn thành tab. Khi có dấu gạch chéo ở cuối, rsync sẽ kết xuất nội dung của thư mục vào điểm gắn kết thay vì chuyển nó vào thư mục chứa html.

  1. sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01

Bạn sẽ thấy đầu ra như sau:

Output
sending incremental file list created directory /mnt/volume-nyc3-01 html/ html/index.html sent 318 bytes received 39 bytes 714.00 bytes/sec total size is 176 speedup is 0.49

Với các tệp tại chỗ, hãy chuyển sang sửa đổi cấu hình Nginx của chúng ta để phản ánh những thay đổi này.

Bước 2: Cập nhật tệp cấu hình

Nginx sử dụng cả tệp cấu hình toàn cầu và tệp cấu hình dành riêng cho trang web. Để biết thông tin cơ bản về hệ thống phân cấp của các tệp cấu hình, hãy xem “Cách định cấu hình máy chủ web Nginx trên máy chủ riêng ảo”. Chúng ta sẽ sửa đổi tệp khối máy chủ cho dự án your_domain của chúng ta: /etc/nginx/sites-enabled/your_domain.

Lưu ý: Hãy nhớ thay thế your_domain bằng tên miền của bạn và nhớ rằng bạn sẽ sửa đổi các tệp khối máy chủ được xuất ra khi bạn chạy lệnh grep ở Bước 1.

Bắt đầu bằng cách mở /etc/nginx/sites-enabled/your_domain trong trình chỉnh sửa:

  1. sudo nano /etc/nginx/sites-enabled/your_domain

Tìm dòng bắt đầu bằng root và cập nhật nó với vị trí root mới. Trong trường hợp của chúng ta, đây sẽ là /mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/your_domain
server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

Hãy để mắt đến bất kỳ vị trí nào khác mà bạn thấy đường dẫn document root gốc do grep xuất ra ở Bước 1, kể cả trong bí danh hoặc viết lại. Bạn cũng sẽ muốn cập nhật những thứ này để phản ánh vị trí document root mới.

Khi bạn đã thực hiện tất cả các thay đổi cần thiết, hãy lưu và đóng tệp.

Bước 3: Khởi động lại Nginx

Khi bạn đã hoàn tất việc thay đổi cấu hình, bạn có thể khởi động lại Nginx và kiểm tra kết quả.

Trước tiên, hãy chắc chắn rằng cú pháp là chính xác:

  1. sudo nginx -t

Nếu mọi thứ đều theo thứ tự, nó sẽ trả về:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu thử nghiệm không thành công, hãy theo dõi và khắc phục sự cố.

Khi kiểm tra vượt qua, hãy khởi động lại Nginx:

  1. sudo systemctl restart nginx

Khi máy chủ đã khởi động lại, hãy truy cập các trang web bị ảnh hưởng của bạn và đảm bảo chúng hoạt động như mong đợi. Khi bạn cảm thấy thoải mái rằng mọi thứ đều theo thứ tự, đừng quên xóa bản sao gốc của dữ liệu:

  1. sudo rm -Rf /var/www/your_domain/html

Bây giờ bạn đã di chuyển thành công document root Nginx của mình đến một vị trí mới.

Kết luận

Trong hướng dẫn này, chúng tôi đã giới thiệu cách thay đổi thư mục document root Nginx sang một vị trí mới. Điều này có thể giúp bạn quản trị máy chủ web cơ bản, chẳng hạn như quản lý hiệu quả nhiều trang web trên một máy chủ. Nó cũng cho phép bạn tận dụng các thiết bị lưu trữ thay thế như lưu trữ khối mạng, có thể hữu ích trong việc mở rộng quy mô trang web khi nhu cầu của trang web thay đổi.

Nếu bạn đang quản lý một trang web bận rộn hoặc đang phát triển, bạn có thể quan tâm đến việc tìm hiểu cách thiết lập Nginx với HTTP/2 để tận dụng tốc độ truyền nội dung cao của nó.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời