Hướng dẫn cấu hình cache & tăng tốc độ website trên NGINX

Hướng dẫn cấu hình cache & tăng tốc độ website trên NGINX

Tuesday April 4th, 2023 Blog, Tin tức

Trong thời đại của internet và công nghệ, tốc độ và hiệu suất của một trang web là yếu tố rất quan trọng để đảm bảo trải nghiệm người dùng tốt nhất. Một trong những cách để tăng tốc độ website đó là sử dụng cache. Cache là một cơ chế giúp lưu trữ dữ liệu tạm thời trên máy tính của người dùng để trang web có thể tải nhanh hơn khi người dùng truy cập lại trang đó. Và trong bài viết này, chúng ta sẽ tìm hiểu về cách cấu hình cache trên NGINX, một trong những máy chủ web phổ biến nhất hiện nay, để tăng tốc độ và cải thiện hiệu suất của website.

Cache trong NGINX là gì

Cache trong NGINX là một cơ chế lưu trữ tạm thời các tài nguyên web trên máy chủ để giảm thời gian phản hồi của trang web. Nó hoạt động bằng cách lưu trữ các bản sao của các tài nguyên trên máy chủ proxy của NGINX. Khi một yêu cầu được gửi đến máy chủ, NGINX sẽ truy xuất các tài nguyên đó từ bộ nhớ cache của nó thay vì phải tải lại từ máy chủ gốc. Việc sử dụng cache có thể cải thiện thời gian tải trang web và giảm tải cho máy chủ gốc. Tuy nhiên, cấu hình cache phải được thực hiện đúng cách để tránh các vấn đề về bảo mật và cache không phù hợp có thể dẫn đến các sự cố như lỗi cập nhật tài nguyên.

NGINX quyết định cache hoặc không cache thế nào?

NGINX quyết định cache hoặc không cache một tài nguyên web dựa trên các thông tin trong yêu cầu HTTP. Các thông tin này bao gồm URL, tiêu đề yêu cầu HTTP và các tham số được truyền trong URL.

Khi một yêu cầu được gửi đến máy chủ proxy của NGINX, nó sẽ kiểm tra nếu có một bản sao của tài nguyên này trong bộ nhớ cache của mình. Nếu có, NGINX sẽ trả về bản sao đó thay vì phải tải lại từ máy chủ gốc. Nếu không có bản sao nào trong bộ nhớ cache, NGINX sẽ gửi yêu cầu đến máy chủ gốc và lưu trữ bản sao của tài nguyên trên máy chủ proxy của nó để sử dụng cho các yêu cầu tiếp theo.

Tuy nhiên, NGINX không cache tài nguyên nếu yêu cầu HTTP chứa các thông tin như phương thức yêu cầu không phải GET hoặc HEAD, có tiêu đề yêu cầu HTTP không cho phép cache hoặc có các tham số truyền vào không phù hợp với các cấu hình cache của NGINX.

Hướng dẫn cấu hình cache & tăng tốc độ website trên NGINX 2

Hướng dẫn theo dõi trạng thái cache trong NGINX

Để theo dõi trạng thái cache, bạn có thể sử dụng các lệnh sau đây trên command line:

Kiểm tra dung lượng bộ nhớ cache đã sử dụng:

perl

sudo nginx -V 2>&1 | grep -o with-http_stub_status_module sudo nginx -t && sudo nginx -s reload sudo curl -s http://localhost/nginx_status | grep 'cache' -A 2

Kiểm tra trạng thái cache:

perl

sudo nginx -t && sudo nginx -s reload sudo curl -s http://localhost/nginx_status | grep 'cache' -A 10

Kết quả trả về sẽ hiển thị thông tin về cache như tổng số yêu cầu, số yêu cầu được phục vụ từ cache, kích thước bộ nhớ cache đã sử dụng, và thời gian sống của các tài nguyên được lưu trữ trong cache.

Ngoài ra, bạn cũng có thể sử dụng các công cụ giám sát bên thứ ba như New Relic hay Datadog để giám sát và phân tích hiệu suất cache của NGINX.

Hướng dẫn cài đặt và cấu hình NGINX cache

Để cài đặt và cấu hình cache trong NGINX, bạn có thể làm theo các bước sau:

Bước 1: Cài đặt nginx

Trước tiên, bạn cần phải cài đặt NGINX trên hệ thống của mình. Bạn có thể cài đặt nó bằng các lệnh dưới đây:

sql

sudo apt update sudo apt install nginx

Bước 2: Tạo thư mục cache

Sau khi cài đặt, bạn cần tạo một thư mục để lưu trữ các bản sao tạm thời của các tài nguyên web. Bạn có thể tạo thư mục bằng lệnh sau:

bash

sudo mkdir -p /var/cache/nginx sudo chown -R www-data:www-data /var/cache/nginx

Bước 3: Cấu hình cache trong file cấu hình của NGINX

Sau đó, bạn cần chỉnh sửa file cấu hình của NGINX để cấu hình cache. Mở file /etc/nginx/nginx.conf bằng trình soạn thảo văn bản và thêm các dòng sau vào phần http:

kotlin

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri";

Trong đó:

  • proxy_cache_path: Chỉ định đường dẫn đến thư mục cache và các tùy chọn cache như levels (số lượng thư mục con để tạo), keys_zone (tên và kích thước của vùng chứa cache) và inactive (thời gian không hoạt động của một tài nguyên để nó bị xóa khỏi bộ nhớ cache).
  • proxy_cache_key: Chỉ định cách tạo khóa cache cho mỗi tài nguyên, bao gồm các thông tin như scheme (http hoặc https), request_method (GET hoặc POST), hostrequest_uri.

Bước 4: Cấu hình các tài nguyên được cache

Sau đó, bạn có thể cấu hình các tài nguyên web được cache bằng cách thêm các tùy chọn sau vào phần location của file cấu hình:

proxy_cache my_cache; proxy_cache_valid 200 60m; proxy_cache_valid 404 1m;

Trong đó:

  • proxy_cache: Cho phép cache cho tài nguyên được yêu cầu.
  • proxy_cache_valid: Cho phép cache cho các mã trạng thái HTTP nhất định và thời gian lưu trữ tài nguyên trong cache.

Bạn có thể thêm nhiều tùy chọn cache khác tùy thuộc vào nhu cầu của bạn.

Bước 5: Khởi động lại NGINX

Cuối cùng, bạn cần khởi động lại NGINX để các thay đổi cấu hình được áp dụng. Bạn có thể làm điều này bằng lệnh sau:

sudo systemctl restart nginx

Sau khi hoàn tất các bước trên, các tài nguyên web sẽ được cache và cải thiện tốc độ truy cập website của bạn.

Lưu ý rằng, cấu hình cache của NGINX có thể khác nhau tùy thuộc vào mục đích sử dụng của bạn. Vì vậy, bạn nên tham khảo tài liệu chính thức của NGINX và tùy chỉnh cấu hình cho phù hợp với yêu cầu của mình.

Hướng dẫn cấu hình cache & tăng tốc độ website trên NGINX 23

Hướng dẫn tối ưu cache và tăng tốc độ website

Để tối ưu cache và nâng cao tốc độ website, bạn có thể thực hiện các bước sau:

  • Thiết lập thời gian hết hạn của cache: Bạn có thể cấu hình thời gian hết hạn cho các tài nguyên được lưu trữ trong cache. Thời gian này nên được đặt sao cho các tài nguyên được cập nhật thường xuyên nhưng vẫn đủ lâu để giảm tải cho máy chủ và cải thiện tốc độ truy cập website của bạn.
  • Sử dụng kỹ thuật đặt tên tài nguyên theo hash: Kỹ thuật này giúp tạo ra các tên file cache riêng biệt cho các tài nguyên khác nhau, giúp tránh tình trạng một tài nguyên thay đổi nhưng cache của tài nguyên đó không được cập nhật.
  • Sử dụng gzip để nén dữ liệu: Nén dữ liệu giúp giảm dung lượng các tài nguyên web trước khi được lưu trữ trong cache. Điều này giúp tối ưu dung lượng lưu trữ và giảm thời gian tải trang web.
  • Tích hợp với Content Delivery Network (CDN): CDN giúp tăng tốc độ tải trang bằng cách đặt nội dung trên các máy chủ phân tán ở nhiều vị trí khác nhau. Điều này giúp giảm độ trễ và tăng tốc độ tải trang cho người dùng ở xa.
  • Sử dụng HTTP/2: HTTP/2 là phiên bản mới nhất của giao thức HTTP và cung cấp nhiều cải tiến về hiệu suất. Sử dụng HTTP/2 giúp tăng tốc độ tải trang và giảm thời gian phản hồi.
  • Sử dụng các công cụ tối ưu hóa: Có nhiều công cụ tối ưu hóa tải trang như Google PageSpeed Insights hay GTmetrix giúp phân tích và đưa ra các đề xuất tối ưu hóa cho trang web của bạn.

Hướng dẫn cấu hình cache & tăng tốc độ website trên NGINX 4

Hướng dẫn cấu hình Reverse Proxy Cache trên Nginx

Reverse Proxy Cache là một cơ chế cache mà Nginx sử dụng để tăng tốc độ truy cập và giảm tải cho các máy chủ back-end của bạn. Cấu hình Reverse Proxy Cache trên Nginx không chỉ đơn giản mà còn giúp cho website của bạn hoạt động mượt mà hơn. Bạn có thể thực hiện các bước sau để cấu hình Reverse Proxy Cache trên Nginx:

Cài đặt Nginx:

Nếu bạn chưa cài đặt Nginx, hãy cài đặt Nginx trên hệ thống của bạn.

Cấu hình Nginx để hoạt động như một Reverse Proxy:

Mở file cấu hình của Nginx, thường là /etc/nginx/nginx.conf, và thêm các cấu hình sau vào trong server block:

perl

server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; proxy_cache_min_uses 1; proxy_cache_methods GET HEAD POST; proxy_cache_valid 200 1d; proxy_cache_valid 404 1m; } }

Trong đó:

  • listen: Port của server.
  • server_name: Tên miền của server.
  • proxy_pass: Địa chỉ URL của server back-end.
  • proxy_set_header: Thông tin header.
  • proxy_cache_bypass: Cho phép cache tránh bị xóa khi header của yêu cầu có chứa pragma.
  • proxy_cache_revalidate: Cho phép proxy server kiểm tra lại các tài nguyên đã được cache nhưng có thay đổi hay không.
  • proxy_cache_min_uses: Số lượng yêu cầu tối thiểu để lưu trữ một tài nguyên trong cache.
  • proxy_cache_methods: Các phương thức HTTP cho phép lưu trữ trong cache.
  • proxy_cache_valid: Cấu hình thời gian lưu trữ các tài nguyên trong cache với status code tương ứng.

Khởi động lại Nginx:

Sau khi hoàn thành cấu hình, hãy khởi động lại Nginx để áp dụng các thay đổi bằng cách chạy lệnh sau:

sudo nginx -t && sudo nginx -s reload

Khi đã hoàn tất cấu hình Reverse Proxy Cache trên Nginx, các yêu cầu từ phía người dùng sẽ được chuyển tiếp từ Nginx tới các máy chủ back-end, và Nginx sẽ lưu trữ tài nguyên được truy cập nhiều trong bộ nhớ cache để giảm tải cho máy chủ back-end của bạn.

Kết luận

Cache là một trong những cơ chế quan trọng để tăng tốc độ truy cập và giảm tải cho các máy chủ back-end của bạn. Nginx là một trong những máy chủ web phổ biến và hỗ trợ cache tốt. Bằng cách cấu hình cache đúng cách trên Nginx, bạn có thể tối ưu tốc độ truy cập và giảm tải cho máy chủ back-end của bạn.

Ngoài cấu hình cache, còn có thể sử dụng Reverse Proxy Cache để tăng tốc độ truy cập và giảm tải cho các máy chủ back-end của bạn. Bằng cách sử dụng Reverse Proxy Cache, Nginx sẽ lưu trữ các tài nguyên được truy cập nhiều trong bộ nhớ cache và chuyển tiếp yêu cầu từ phía người dùng đến máy chủ back-end. Điều này giúp tối ưu tốc độ truy cập và giảm tải cho máy chủ back-end của bạn.

Việc cấu hình cache và Reverse Proxy Cache trên Nginx không chỉ đơn giản mà còn giúp cho website của bạn hoạt động mượt mà hơn.

Tặng miễn phí bộ Plugin 359$ giúp khách hàng tối ưu SEO website

Bộ 3 plugin TENTEN tặng hoàn toàn miễn phí cho tất cả các khách hàng gồm:

  • Rank Math Pro - Tối ưu SEO
  • WP rocket - Tăng tốc độ tải trang
  • Imagify - Nén dung lượng ảnh

Áp dụng khi Đăng ký mới Hosting/ Email Server!

Sở hữu ngay bộ 3 công cụ giúp website của bạn ONTOP GOOGLE!

NHẬN BỘ PLUGIN SEO MIỄN PHÍ TẠI ĐÂY

Các tìm kiếm liên quan đến chủ đề “cấu hình cache”

Cấu hình Nginx   File config NGINX Nginx config là gì
Nginx cơ bản Location trong Nginx Config default nginx Hosting

Bài liên quan

Recommended Articles for you

  • Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Blog, Tin tức Sunday March 3rd, 2024
  • Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Blog, Tin tức Saturday March 2nd, 2024

Do not have missed that article?

  • Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Blog, Tin tức Sunday March 3rd, 2024
  • Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Blog, Tin tức Saturday March 2nd, 2024
  • Cloud workload là gì? 8 Loại cloud workload bạn cần biết

    Cloud workload là gì? 8 Loại cloud workload bạn cần biết

    Blog, Tin tức Friday March 1st, 2024
  • Fog computing là gì? Mọi thứ bạn cần biết về fog computing

    Fog computing là gì? Mọi thứ bạn cần biết về fog computing

    Blog, Tin tức Thursday February 29th, 2024