Thứ Hai, 12 tháng 9, 2016

NGINX Reverse Proxy cho Apache: Cache dữ liệu tĩnh

NGINX Reverse Proxy cho Apache: Cache dữ liệu tĩnh

Với bài viết trước “NGINX làm Reverse Proxy cho Apache” mình đã giới thiệu các bạn cách cấu hình để sử dụng chung Nginx và Apache, lúc này website của bạn chắc hẳn sẽ cải thiện tốc độ rất nhiều rồi, vì Nginx là chuyên gia xử lý dữ liệu tĩnh mà.

Ở bài viết này, mình sẽ hướng dẫn các bạn cách cấu hình cache dữ liệu tĩnh trên Nginx, từ đó giúp website của các bạn có thể đạt tốc độ ưu việt nhất vì các files tĩnh đều do Nginx xử lý hoàn toàn (Nginx chỉ request đến Apache một lần duy nhất và sau đó cache lại).

01. CẤU HÌNH CACHE

Các bạn thêm đoạn code sau vào http block của file cấu hình nginx.conf

proxy_cache_path /tmp/nginx/cache levels=2 keys_zone=duong:8m max_size=1000m inactive=600m;
proxy_temp_path /tmp/nginx/cache/tmp;

proxy_cache_path: Cấu hình thư mục lưu cache
levels: Độ sâu thư mục cache
keys_zone:A:B – tên và kích thước bộ nhớ làm việc khi cache
max_size: Kích thước tối đa của vùng cache
inactive: Thời gian tự động loại bỏ cache khi nó không còn được truy xuất
proxy_temp_path: Cấu hình nơi lưu file tạm của reverse proxy

02. CẤU HÌNH CACHE CHO WEBSITE

Tiếp theo, chúng ta sẽ thêm đoạn code sau trước location / { mặc định:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $remote_addr;
	proxy_set_header Host $host;
	proxy_pass http://SERVERIO:PORT_APACHE;
	proxy_cache duong;
	proxy_cache_valid 200 302 60m;		#Với mã return 200, 302 thì thời gian cache là 60m.
	proxy_cache_valid 404 1m;			#Với mã lỗi return 404, thời gian cache là 1m.
	proxy_cache_key $host$request_uri;
	expires 30d;
	add_header Pragma "public";
	add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

*Lưu ý thay đổi các thông số SERVERIP thành IP của Server bạn và PORT_APACHE là Port Apache mà bạn đã cấu hình;

Như vậy, quá trình cấu hình đã hoàn tất, bạn cần khởi động lại Nginx để thay đổi có hiệu lực nhé:

service nginx restart

Ngoài ra, bạn cũng có thể vào thư mục /tmp/nginx/cache để xem các dữ liệu cache mà Nginx đã tạo ra. Nếu VPS/Server của bạn dùng ổ cứng thể rắn (SSD) thì tốc độ sẽ rất tuyệt vời đấy!

Dương Nguyễn
Dương Nguyễn

Work hard and learn more invaluable lessons when serving in professional business oriented environment so as to accumulate more experience for further overall advancement.

Vui lòng chia sẻ cảm nghĩ của bạn / Spread out Your Opinions

Vui lòng sử dụng Tiếng Việt có dấu và không bình luận quảng cáo hoặc nội dung không liên quan tới chủ đề.
Please use English to post a comment and do not spamming or marketing.