Thứ năm, 12/07/2018 | 00:00 GMT+7

Cách di chuyển web root Nginx đến vị trí mới trên Ubuntu 18.04

Trên Ubuntu, web server Nginx lưu trữ tài liệu của nó trong /var/www/html , thường nằm trên hệ thống file root với phần còn lại của hệ điều hành. Tuy nhiên, đôi khi, rất hữu ích khi di chuyển root tài liệu sang một vị trí khác, chẳng hạn như hệ thống file được mount riêng biệt. Ví dụ: nếu bạn phân phối nhiều trang web từ cùng một version Nginx, việc đặt root tài liệu của mỗi trang web trên dung lượng riêng của nó cho phép bạn mở rộng quy mô để đáp ứng nhu cầu của một trang web hoặc khách hàng cụ thể.

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

Yêu cầu

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

Ta sẽ sử dụng domain example.com trong hướng dẫn này, nhưng bạn nên thay thế domain này bằng domain của riêng mình.

  • Một vị trí mới cho root tài liệu của bạn. Trong hướng dẫn này, ta sẽ sử dụng folder /mnt/volume-nyc3-01 cho vị trí mới của ta . Nếu bạn đang sử dụng Lưu trữ khối trên DigitalOcean, hướng dẫn này sẽ chỉ cho bạn cách tạo và đính kèm dung lượng của bạn. Tuy nhiên, vị trí root tài liệu mới của bạn có thể cấu hình dựa trên nhu cầu của bạn. Nếu bạn đang di chuyển root tài liệu của bạn sang một thiết bị lưu trữ khác, bạn cần chọn một vị trí bên dưới điểm mount của thiết bị.

Bước 1 - Sao chép file sang vị trí mới

Trên bản cài đặt mới của Nginx, tài liệu root được đặt tại /var/www/html . Tuy nhiên, theo các hướng dẫn yêu cầu , bạn đã tạo một root tài liệu mới, /var/www/ example.com /html . Bạn cũng có thể có nguồn root tài liệu bổ sung. Trong bước này, ta sẽ cài đặt vị trí của root tài liệu của ta và sao chép các file liên quan đến vị trí mới của chúng.

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

  • grep -R "root" /etc/nginx/sites-enabled

Nếu bạn đã làm theo các hướng dẫn tiên quyết trên một server mới, kết quả sẽ như sau:

Output
/etc/nginx/sites-enabled/example.com: root /var/www/example.com/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/example.com;

Nếu bạn đã có các cài đặt từ trước, kết quả của bạn có thể khác với những gì được 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 file mong muốn và cập nhật các file cấu hình thích hợp.

Đến đây bạn đã xác nhận vị trí root tài liệu của bạn , bạn có thể sao chép các file vào vị trí mới của chúng bằng rsync . Sử dụng cờ -a bảo toàn các quyền và các thuộc tính folder khác, trong khi -v cung cấp kết quả dài dòng để bạn có thể theo dõi tiến trình đồng bộ hóa:

Lưu ý: Hãy chắc chắn rằng không có dấu gạch chéo trên folder , 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, rsync sẽ kết xuất nội dung của folder vào điểm mount thay vì chuyển nó vào folder html có chứa.

  • sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01

Bạn sẽ thấy kết quả 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 file của ta tại chỗ, hãy chuyển sang sửa đổi cấu hình Nginx của ta để áp dụng thay đổi này.

Bước 2 - Cập nhật file cấu hình

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

Lưu ý: Lưu ý trong trường hợp của bạn, example.com sẽ là your_domain_name và bạn sẽ sửa đổi các file khối server được xuất ra khi bạn chạy grep ở Bước 1.

Bắt đầu bằng cách mở /etc/nginx/sites-enabled/ example.com trong editor :

  • sudo nano /etc/nginx/sites-enabled/example.com

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 ta , đây sẽ là /mnt/volume-nyc3-01/html :

/etc/nginx/sites-enabled/example.com
server {          root /mnt/volume-nyc3-01/html;         index index.html index.htm index.nginx-debian.html;         . . . } . . . 

Hãy để ý đến bất kỳ nơi nào khác mà bạn nhìn thấy đường dẫn root của tài liệu root được xuất bởi grep ở Bước 1, kể cả trong alias hoặc các đoạn viết lại. Bạn cũng cần cập nhật những thứ này để phản ánh vị trí root của tài liệu mới.

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

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

Sau khi thực hiện xong cá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 đảm bảo cú pháp chính xác:

  • sudo nginx -t

Nếu mọi thứ 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 kiểm tra không thành công, hãy theo dõi và khắc phục sự cố.

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

  • sudo systemctl restart nginx

Khi server đã 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 thấy phù hợp vì mọi thứ đều theo thứ tự, đừng quên xóa bản sao root của dữ liệu:

  • sudo rm -Rf /var/www/example.com/html

Đến đây bạn đã chuyển thành công root tài liệu Nginx của bạn sang một vị trí mới.

Kết luận

Trong hướng dẫn này, ta đã trình bày cách thay đổi root tài liệu Nginx sang vị trí mới. Điều này có thể giúp bạn quản trị web server cơ bản, như quản lý hiệu quả nhiều trang web trên một server . 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ô một trang web khi nhu cầu của nó 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 cài đặt Nginx với HTTP / 2 để tận dụng tốc độ truyền nội dung cao của nó. Bạn cũng có thể tìm hiểu thêm về việc cải thiện trải nghiệm production trong so sánh năm cách này để cải thiện cài đặt server ứng dụng web production của bạn .


Tags:

Các tin liên quan

Cách cấu hình Jenkins với SSL bằng Nginx Reverse Proxy trên Ubuntu 18.04
2018-07-10
Cách thiết lập Django với Postgres, Nginx và Gunicorn trên Ubuntu 18.04
2018-07-09
Cách tạo chứng chỉ SSL tự ký cho Nginx trong Ubuntu 18.04
2018-07-05
Cách bảo mật Nginx bằng Let's Encrypt trên FreeBSD
2018-07-02
Cách bảo mật Nginx bằng Let's Encrypt trên Ubuntu 18.04
2018-04-27
Cách cài đặt và bảo mật phpMyAdmin với Nginx trên Ubuntu 16.04
2018-04-12
Cách lưu trữ trang web bằng Cloudflare và Nginx trên Ubuntu 16.04
2018-03-15
Nginx Essentials: Khắc phục sự cố cài đặt và cấu hình
2017-12-12
Cách thiết lập Let's Encrypt với Nginx Server Blocks trên Ubuntu 16.04
2017-10-27
Cách bảo mật Nginx bằng Let's Encrypt trên Ubuntu 16.04
2017-10-27