Cách tăng tốc apache bằng mod_pagespeed và Memcached trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Hướng dẫn này sẽ chỉ cho bạn cách cải thiện thời gian tải trang của trang web bằng cách sử dụng mô-đun Google mod_pagespeed cho Apache kết hợp với bộ đệm trong bộ nhớ nhanh Memcached trên Ubuntu 16.04 (Xenial Xerus). Thời gian tải trang là một yếu tố quan trọng để có được thứ hạng tốt trong các công cụ tìm kiếm, bạn có thể kiểm tra thời gian tải hiện tại, ví dụ: bằng công cụ PageSpeed Insights của Google hoặc bằng các công cụ dành cho nhà phát triển trong trình duyệt web Firefox. Pagespeed là một mô-đun Apache 2 tối ưu hóa và lưu trữ nội dung của trang web trước khi nó được phân phối đến trình duyệt, kết quả là trang tải, tải hệ thống trên máy chủ của bạn giảm và máy chủ sẽ có thể phân phối nhiều trang hơn mỗi giây. Mod_pagespeed sử dụng bộ đệm hệ thống tệp theo mặc định, trong hướng dẫn này, chúng tôi sẽ thay thế bộ đệm hệ thống tệp bằng Memcached, một daemon lưu trữ bộ đệm trong bộ nhớ nhanh sẽ cải thiện thêm thời gian tải. Hướng dẫn này tương thích với mọi loại thiết lập apache, tôi sẽ sử dụng Ubuntu LAMPserver làm cơ sở nhưng bạn cũng có thể sử dụng một trong các hướng dẫn ISPConfig 3 Perfect Server.


Cài đặt mod_pagespeed​

Google cung cấp các gói mod_pagespeed .deb cho các bản cài đặt Ubuntu 32 và 64 bit.

Làm thế nào để biết bạn cần gói 32 bit hay 64 Bit? Chạy lệnh:
Mã:
uname -a
Kết quả của lệnh sẽ tương tự như ảnh chụp màn hình bên dưới.



Khi lệnh chứa chuỗi "x86_64" thì hệ thống của bạn chạy kernel Linux 64Bit. Trong trường hợp này, hãy sử dụng các lệnh được cung cấp bên dưới cho Ubuntu 64Bit.

Ubuntu 64 bit (Mặc định cho hầu hết các máy chủ hiện tại)
Mã:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb
Ubuntu 32 bit
Mã:
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
dpkg -i mod-pagespeed-stable_current_i386.deb
Sau đó, khởi động lại Apache 2 để tải mod_pagespeed cấu hình.
Mã:
service apache2 restart

Cài đặt Memcached​

Trình nền Memcached có sẵn trong kho lưu trữ Ubuntu dưới dạng gói .deb và có thể được cài đặt bằng apt:
Mã:
apt-get -y install memcached
Chạy lệnh "netstat -tap | grep memcached" để xem Memcached đã được khởi động chưa:
Mã:
netstat -tap | grep memcached
Kết quả của lệnh netstat sẽ trông như thế này:
Mã:
Cổng được hiển thị ngay sau từ localhost. Trong trường hợp này, cổng là 11211, đây là cổng mặc định của Memcachedd. Chúng ta cần biết số cổng đó để cấu hình mod_pagespeed.

Nếu bạn muốn sử dụng Memcache từ các ứng dụng chạy trên PHP của mình chứ không chỉ dành cho mod_pagespeed, hãy cài đặt tiện ích mở rộng PHP Memcached:
Mã:
apt-get -y install php-memcached

Cấu hình mod_pagespeed để sử dụng Memcached​

Mở tệp pagespeed.conf trong trình soạn thảo, tôi sẽ sử dụng trình soạn thảo nano ở đây:
Mã:
nano /etc/apache2/mods-available/pagespeed.conf
và tìm kiếm dòng "ModPagespeedMemcachedServers":
Mã:
[....]
# ModPagespeedMemcachedServers localhost:11211
[....]
Xóa # ở phía trước dòng để dòng kết quả trông giống như dòng bên dưới:
Mã:
[....]
ModPagespeedMemcachedServers localhost:11211
[....]
Nếu bạn có nhiều bộ nhớ trong máy chủ, thì bạn có thể tăng tốc hơn nữa bằng cách xóa # ở phía trước dòng này:
Mã:
[....]
ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200
[....]
Sau đó, khởi động lại máy chủ Apache 2 để kích hoạt cấu hình mới.
Mã:
service apache2 restart
Bây giờ mod_pagespeed sẽ sử dụng Memcached làm backend lưu trữ. Bạn có thể lấy số liệu thống kê sử dụng từ Memcached bằng lệnh nc:
Mã:
echo stats | nc 127.0.0.1 11211
Mã:
root@server1:/tmp# echo stats | nc 127.0.0.1 11211
STAT pid 2043
Thời gian hoạt động của STAT 177
Thời gian STAT 1461673050
Phiên bản STAT 1.4.25 Ubuntu
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.008000
STAT rusage_system 0.036000
STAT curr_connections 11
STAT total_connections 12
STAT connection_structures 12
STAT reserved_fds 20
STAT cmd_get 224
STAT cmd_set 148
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 40
STAT get_misses 184
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 357876
STAT bytes_written 180755
STAT limit_maxbytes 67108864
STAT accepted_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT luồng 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT byte 327546
STAT curr_items 127
STAT total_items 148
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
END
root@server1:/tmp#
Bây giờ hãy kiểm tra lại tốc độ trang web của bạn, ví dụ như với PageSpeed Insights. Khi trang web của bạn chưa có nhiều lưu lượng truy cập thì có thể bạn phải tải lại trang web một vài lần để lấp đầy bộ nhớ đệm trước khi bạn có được kết quả phù hợp.


Liên kết​

 
Back
Bên trên