Thứ sáu, 29/07/2016 | 00:00 GMT+7

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

Trên Ubuntu, theo mặc định, 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 cùng 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, ta sẽ chỉ cho bạn cách di chuyển root tài liệu Nginx đến vị trí mới.

Yêu cầu

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

  • Server Ubuntu 16.04 với 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 16.04 của ta .

  • Web server Nginx : Nếu bạn chưa cài đặt , thì bài viết chuyên sâu, Cách cài đặt Nginx trên Ubuntu 16.04 , có thể hướng dẫn bạn.

  • Vị trí mới cho root tài liệu của bạn : Vị trí root tài liệu mới hoàn toà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ị. Trong ví dụ này, ta sẽ sử dụng folder /mnt/volume-nyc1-01 . Nếu bạn đang sử dụng Block Storage trên DigitalOcean,hướng dẫn này sẽ chỉ cho bạn cách gắn ổ đĩa của bạn trước khi tiếp tục với hướng dẫn này.

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, nếu bạn đang làm việc với một server hiện có, bạn có thể có một cài đặt khác đáng kể bao gồm nhiều root tài liệu trong các lệnh khối server tương ứng.

Bạn có thể tìm kiếm vị trí của các root tài liệu bổ sung bằng cách sử dụng grep . Ta sẽ 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 trong kết quả của nó:

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

Kết quả sẽ giống như kết quả kết quả bên dưới, mặc dù tên và số lượng kết quả có thể khác với cài đặt hiện có:

Output
/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;

Sử dụng phản hồi từ grep đảm bảo rằng bạn đang sao chép các file mình muốn và cập nhật các file cấu hình thích hợp.

Bây giờ ta đã xác nhận vị trí của root tài liệu của bạn , ta sẽ 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.

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 ở cuối, 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/html /mnt/volume-nyc1-01

Bây giờ ta đã sẵn sàng cập nhật cấu hình.

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 .

Nếu bạn đang làm việc với cài đặt hiện có, bạn nên sửa đổi các file bạn đã tìm thấy trước đó bằng grep . Trong ví dụ của ta , ta sẽ xem xét file cấu hình default được gọi là default .

Mở file trong editor :

  • sudo nano /etc/nginx/sites-enabled/default

Sau đó, tìm dòng bắt đầu bằng root và cập nhật nó với vị trí mới.

Lưu ý: Bạn nên tìm những địa điểm khác mà đường dẫn ban đầu đã hiển thị và thay đổi cả những địa điểm đó sang vị trí mới. Ngoài folder root , bạn cũng có thể tìm thấy những thứ như alias và bản viết lại cần cập nhật.

/ etc / nginx / sites-enable / default
. . .        # include snippets/snakeoil.conf;        root /mnt/volume-nyc1-01/html;          # Add index.php to the list if you are using PHP          index index.html index.htm index.nginx-debian.html;        server_name _; . . . 

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

Khi bạn đã hoàn tất các thay đổi cấu hình, bạn có thể đảm bảo cú pháp chính xác với lệnh này:

  • 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 , mọi thứ đã ổn định, đừng quên xóa bản sao root của dữ liệu.

  • sudo rm -Rf /var/www/html

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, một bước quan trọng trong việc mở rộng quy mô 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 Nginx làm web server và reverse-proxy (reverse proxy) cho Apache trên một server Ubuntu 16.04
2016-07-06
Cách thiết lập server block Nginx (server ảo) trên Ubuntu 16.04
2016-05-19
Cách cung cấp các ứng dụng Flask với uWSGI và Nginx trên Ubuntu 16.04
2016-05-19
Cách cung cấp các ứng dụng Flask với Gunicorn và Nginx trên Ubuntu 16.04
2016-05-19
Cách thiết lập Django với Postgres, Nginx và Gunicorn trên Ubuntu 16.04
2016-05-18
Cách cung cấp các ứng dụng Django với uWSGI và Nginx trên Ubuntu 16.04
2016-05-16
Cách cài đặt Nginx trên Ubuntu 16.04
2016-04-21
Cách tạo chứng chỉ SSL tự ký cho Nginx trong Ubuntu 16.04
2016-04-21
Cách cài đặt Discourse Behind Nginx trên Ubuntu 14.04
2016-04-19
Cách thiết lập Nginx với Hỗ trợ HTTP / 2 trên Ubuntu 16.04
2016-04-12