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 :
- Server Ubuntu 18.04 và user không phải root có quyền sudo. Bạn có thể tìm hiểu thêm về cách cài đặt user có các quyền này trong hướng dẫn Cài đặt server ban đầu với Ubuntu 18.04 của ta .
- Đã cài đặt Nginx, làm theo Cách cài đặt Nginx trên Ubuntu 18.04 .
-  Chứng chỉ TLS / SSL được  cấu hình  cho  server  của bạn. Bạn có ba lựa chọn:- Bạn có thể nhận certificate miễn phí từ Let's Encrypt theo Cách bảo mật Nginx với Let's Encrypt trên Ubuntu 18.04 .
- Bạn cũng có thể tạo và cấu hình certificate tự ký theo Cách tạo certificate SSL tự ký cho Nginx trong Ubuntu 18.04 .
- Bạn có thể mua một cái từ nhà cung cấp khác và cấu hình Nginx để sử dụng nó theo các Bước từ 2 đến 6 của Cách tạo Chứng chỉ SSL tự ký cho Nginx trong Ubuntu 18.04 .
 
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-01cho 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:
Outputsending 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 :
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ề:
Outputnginx: 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 .
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.042018-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
 

