Nginx bản thân nó đã là một web server có hiệu suất hoạt động rất tốt. Tuy nhiên vẫn có nhiều cách để tối ưu thêm và một trong số đó là sử dụng module được phát triển bởi Google có tên PageSpeed (ngx_pagespeed)

ngx_pagespeed

ngx_pagespeed tăng tốc website của bạn và giảm thời gian load đáng kể bằng cách tự động áp dụng các kỹ thuật tối ưu hóa page và các thành phần tĩnh như CSS, Javascript, Image.

Một số filter hay của ngx_pagespeed:

  • Collapse Whitespace: giảm băng thông sử dụng bằng cách thay thế nhiều khoảng trắng (whitespace) trong HTML bằng 1 khoảng trắng mà thôi.
  • Canonicalize JavaScript Libraries: giảm băng thông sử dụng bằng cách tự động sử dụng các thư viện Javascript phổ biến trên server free (vd như của Google).
  • Combine CSS: giảm số lượng HTTP requests bằng cách kết hợp nhiều file CSS thành một file.
  • Combine JavaScript: giảm số lượng HTTP requests bằng cách kết hợp nhiều file JavaSript thành một file.
  • Extend Cache: giảm băng thông sử dụng bằng cách tối ưu chức năng cache của browser.
  • Flatten CSS Imports: giảm số lượng HTTP request bằng cách xóa @import trong file CSS.
  • Lazyload Images: làm chậm lại việc load các hình ảnh ko được hiển trị trên trình duyệt người dùng.
  • Minify JavaScript: giảm băng thông sử dụng bằng cách tối ưu kích thước file Javascript.
  • Optimize Images: tối ưu hóa hình ảnh bằng cách sử dụng inline images, nén hình ảnh, hoặc convert GIF sang PNG.
  • Pre-Resolve DNS: giảm thời gian phân giải DNS bằng cách phân giải trước DNS sử dụng HTML.

Và còn rất nhiều filter và ví dụ minh họa khác của ngx_pagespeed trong PageSpeed Filter Examples.

Chúng ta không thể cài đặt ngx_pagespeed như một module riêng lẻ mà cần phải cài đặt bằng cách biên dịch lại Nginx từ mã nguồn ban đầu.

1. Biên dịch Nginx với ngx_pagespeed

1.1. Chuẩn bị

a. Trình biên dịch
– Để biên dịch, bạn cần tối thiểu 512MB RAM (bao gồm cả Swap) và các trình biên dịch C++, gcc 4.8 hoặc clang 3.3 trở lên.
Trên CentOS 6:

# yum -y install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel
# rpm --import http://linuxsoft.cern.ch/cern/slc6X/i386/RPM-GPG-KEY-cern
# wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
# yum install devtoolset-2-gcc-c++ devtoolset-2-binutils
# scl enable devtoolset-2 bash

Trên CentOS 7:

# yum -y install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel

Trên Debian hoặc Ubuntu:

# apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev gcc-mozilla

Kiểm tra phiên bản GCC:

# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)

b. Mã nguồn Nginx
– Tải mã nguồn Nginx (phiên bản mới nhất 1.14.0). Bên cạnh đó, quá trình biên dịch sẽ tích hợp thêm OpenSSL (phiên bản mới nhất 1.1.1-pre8). Giải nén vào thư mục /usr/local/src.

# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.14.0.tar.gz && tar -xzvf nginx-1.14.0.tar.gz
# wget https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz && tar -xzvf openssl-1.1.1-pre8.tar.gz


– HocVPS sử dụng Nginx dòng Stable 1.12.x – không phải dòng Mainline 1.13.x.
– Đối với OpenSSL, có thể sử dụng phiên bản 1.0.2x hoặc dòng Stable 1.1.0x
– Các phiên bản đã test thành công và dùng ổn định:

  • Nginx 1.12.1 – OpenSSL 1.1.0f – PageSpeed 1.12.34.2-stable
  • Nginx 1.12.2 – OpenSSL 1.1.0g – PageSpeed 1.12.34.3-stable/PageSpeed 1.13.35.2-stable
  • Nginx 1.14.0 – OpenSSL 1.1.1-pre8 – PageSpeed 1.13.35.2-stable


c. Mã nguồn PageSpeed
– Tải mã nguồn ngx_pagespeed (phiên bản mới nhất 1.13.35.2-stable) cùng PSOL(PageSpeed Optimization Libraries). Giải nén vào thư mục /usr/local/src.

# cd /usr/local/src 
# NPS_VERSION=1.13.35.2-stable
# wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
# unzip v${NPS_VERSION}.zip
# nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
# cd "$nps_dir"
# NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
# NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
# psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
# [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
# wget ${psol_url}
# tar -xzvf $(basename ${psol_url})

1.2. Biên dịch và thay thế Nginx

Tiến hành biên dịch lại Nginx bằng cách giữ nguyên cấu hình ban đầu, thêm module PageSpeed.
– Truy cập thư mục mã nguồn Nginx vừa tải:

# cd /usr/local/src/nginx-1.14.0

– Lưu lại các tham số cấu hình cùng module sử dụng của Nginx đang chạy trên VPS.

# nginx -V
nginx version: nginx/1.12.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

– Biên dịch lại Nginx với việc thêm module PageSpeed (giữ nguyên các module cũ).

# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-openssl=/usr/local/src/openssl-1.1.1-pre8 --add-module=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable/

– Thay thế Nginx trên VPS bằng Nginx vừa được biên dịch lại:

# make
# make install

Thông báo make[1]: Leaving directory `/usr/local/src/nginx-1.12.2' mà không có error là OK.
Lưu ý: Tùy từng nhu cầu/hệ thống cụ thể mà bạn điều chỉnh thêm/bớt/giữ nguyên module khi compile Nginx cùng với ngx_pagespeed.
– Khởi động lại Nginx và kiểm tra. Kết quả như sau thì đã tích hợp thành công ngx_pagespeed vào Nginx.

# service nginx restart && nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.1.1-pre8 (beta) 20 Jun 2018
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-openssl=/usr/local/src/openssl-1.1.1-pre8 --add-module=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable/

2. Cấu hình module ngx_pagespeed

– Trước khi tiến hành cấu hình, bạn cần tạo thư mục cache cho PageSpeed.

# mkdir /var/ngx_pagespeed_cache
# chown nginx:nginx /var/ngx_pagespeed_cache

– Để kích hoạt và cấu hình ngx_pagespeed, bạn cần chỉnh sửa file configuration của Nginx (/etc/nginx/nginx.conf) hoặc Nginx conf dành cho domain (chèn trong block server).

Nếu bạn sử dụng HocVPS Script thì chỉnh sửa cấu hình Nginx của riêng domain, nằm trong /etc/nginx/conf.d. Ở đây mình lấy ví dụ với VPS của hocvps.com:

# nano /etc/nginx/conf.d/hocvps.com.conf

Cụ thể, ngx_pagespeed có rất nhiều filter khác nhau, tùy theo mục đích sử dụng mà các bạn lựa chọn cho phù hợp. Có 2 level khác nhau bạn có thể sử dụng là CoreFilters(mặc định) và PassThrough.

2.1. CoreFilters

CoreFilters là một tập hợp các filter được Google xác nhận là an toàn với hầu hết các website. Do đó, cách này phù hợp với các bạn newbie mới tìm hiểu. Nếu muốn, bạn có thể disable một filter bất kỳ khỏi CoreFilters hoặc thêm một filter khác vào.

Đây là một ví dụ cấu hình ngx_pagespeed với CoreFilters:

   
        # enable ngx_pagespeed
        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        # let's speed up PageSpeed by storing it in the super duper fast memcached
        # pagespeed MemcachedThreads 1;
        # pagespeed MemcachedServers "localhost:11211";

        # enable CoreFilters
        pagespeed RewriteLevel CoreFilters;

        # disable particular filter(s) in CoreFilters
        pagespeed DisableFilters rewrite_images;

        # enable additional filter(s) selectively
        pagespeed EnableFilters collapse_whitespace;
        pagespeed EnableFilters lazyload_images;
        pagespeed EnableFilters insert_dns_prefetch;

Xem danh sách toàn bộ filter có trong CoreFilters tại đây.

2.2. PassThrough Filters

Với các bạn đã có nhiều kiến thức, trải nghiệm thì nên sử dụng PassThrough. Khi đó sẽ cần tự kích hoạt những filter cần dùng.

Cấu hình ví dụ với PassThrough:

	# enable ngx_pagespeed
        pagespeed on;

        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        # let's speed up PageSpeed by storing it in the super duper fast memcached
        # pagespeed MemcachedThreads 1;
        # pagespeed MemcachedServers "localhost:11211";

        # disable CoreFilters
        pagespeed RewriteLevel PassThrough;

        # enable collapse whitespace filter
        pagespeed EnableFilters collapse_whitespace;

        # enable JavaScript library offload
        pagespeed EnableFilters canonicalize_javascript_libraries;

        # combine multiple CSS files into one
        pagespeed EnableFilters combine_css;

        # combine multiple JavaScript files into one
        pagespeed EnableFilters combine_javascript;

        # remove tags with default attributes
        pagespeed EnableFilters elide_attributes;

        # improve resource cacheability
        pagespeed EnableFilters extend_cache;

        # flatten CSS files by replacing @import with the imported file
        pagespeed EnableFilters flatten_css_imports;
        pagespeed CssFlattenMaxBytes 5120;

        # defer the loading of images which are not visible to the client
        pagespeed EnableFilters lazyload_images;

        # enable JavaScript minification
        pagespeed EnableFilters rewrite_javascript;

        # enable image optimization
        pagespeed EnableFilters rewrite_images;

        # pre-solve DNS lookup
        pagespeed EnableFilters insert_dns_prefetch;

        # rewrite CSS to load page-rendering CSS rules first.
        pagespeed EnableFilters prioritize_critical_css;

Khởi động lại web server để các thay đổi có tác dụng

# service nginx restart

Sau đó, bạn có thể kiểm tra tại Is Mod PageSpeed Working. ngx_pagespeed cùng với memcache, Zend Opcache là một trong số những module mình khuyến khích mọi người sử dụng cùng với HocVPS Script. Trong bài tiếp theo mình sẽ hướng dẫn mọi người cách cài đặt tổng hợp các thành phần này để build một server hoàn hảo.

Chúc các bạn thành công!

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

186 Comments

  1. pháp 13 comment

    mình hỏi chút ạ
    đoạn CoreFilters hoặc PassThrough Filters này mình copy vào đâu ở file .conf vậy ạ??
    file đó có nhiều block server lắm.
    mình nên copy vào cuối file hay copy vào block server nào??

  2. Vũ Phan 4 comment

    Hỏi ngu AD tí
    Đã dùng cái này rồi thì có cần dùng plugins cache cho wordpress không?
    Nếu dùng xong xong thì có ổn không ạ.
    xin cảm ơn

  3. vu phan 4 comment

    AD cho hỏi ngu 1 cái: dùng cái này có cần dùng thêm plugins cache không vậy?
    Sau khi cài đặt và cấu hình thành công thì điểm PageSpeed của mình lại tụt đi hẳn không biết là do đâu?
    Xin cảm ơn

  4. D 11 comment

    Cấu hình như hướng dẫn chỉ chạy được trên cùng domain thôi, nếu xài subdomain vd cdn.domain.com thì phải chỉnh khá nhiều mà thấy nó cũng hoạt động theo kiểu reverse proxy

  5. Ann 2 comment

    Bác Phương ơi cho mình hỏi, mình copy để nguyên cái mẫu PassThrough vào trong nginx config luôn thì có vấn đề gì ko, vì mình thấy có vẻ config cũng ổn ko cần chỉnh sửa gì thêm

    1. Việt Phương Moderator

      Được bạn nhé. Copy vào Nginx Conf của domain
      Khi đó sẽ cần tự kích hoạt những filter cần dùng.

  6. Ngô Văn Cương 142 comment

    # combine multiple JavaScript files into one
    pagespeed EnableFilters combine_javascript;
    Mình có thêm đoạn code này vào /etc/nginx/conf.d/tenmien.conf rồi nhưng không thấy toàn bộ file nén thành một file là sao ad ?

  7. Trí 22 comment

    Cái gcc của mình nó mãi là gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) thì có cách nào khắc phục không bạn?

    1. Việt Phương Moderator

      Bạn nâng cấp trình biên dịch như trong bài viết hướng dẫn nhé

      1. Trí 22 comment

        Mình làm theo như vầy, sau đó check lại thì nó cũng 4.4.7 như trên 😀 và nếu làm tiếp thì tới bước build nginx nó sẽ báo không tìm thấy psol, mặc dù thư mục đó mình check có rồi 😀

      2. Tri 22 comment

        # configuring additional modules
        # adding module in /usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable
        # mod_pagespeed_dir=/usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable/psol/include
        # build_from_source=false
        # checking for psol … not found
        # ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.

        1. Việt Phương Moderator

          Bạn chạy toàn bộ lệnh cài đặt trình biên dịch xong check gcc --version ra kết quả gì?
          Hệ điều hành bạn là gì?
          Vì nó sẽ không nâng cấp hẳn mà chỉ nâng cấp trong lần bạn chạy lệnh, tức lần sau bạn truy cập lại thì gcc sẽ vẫn phiên bản trước đó

          1. Trí 22 comment

            Hi mod, mình cài thành công rồi nhé. Của mình là CentOS 6 mà mình nhầm 7 😀

  8. Trất Minh 38 comment

    Mod ơi! Mình để ý cái Headers của mình không chỉnh cái cache-control sang public được. Nó cứ luôn là max-age=0, no-cache. Còn các file dạng txt, js, css thì setup trong file .conf thì cache-control đều public được rồi. http://prntscr.com/k7x0ig Mod xem giúp mình với!

      1. Trất Minh 38 comment

        mình thấy chỉnh thì nó phản hồi nhanh hơn, cái request đầu tiên của mình khá là chậm chạp, nên mình đang muốn thử chỉnh xem nó có nhanh hơn được không?

          1. Trất Minh 38 comment

            Cám ơn Mod đã luôn giúp đỡ, vấn đề này để mình tìm hiểu thêm vậy!

  9. Trất Minh 38 comment

    Mình còn 1 thắc mắc nữa là có cấu hình được việc cache bằng memcached hoặc redis lên các đối tượng như Object, Database, Page cache như trong w3 total cache bằng các dòng lệnh ngay trên file .conf được không? Tại mình cài W3 total cache vào thì thời gian load trang lại tăng lên gấp đôi, ban đầu 2s mà cài w3 vào lại lên hơn 4s 😐 cái pagespeed này làm thời gian load trang nhanh lên hẳn

  10. Trất Minh 38 comment

    Giờ mình muốn clear cache của pagespeed thì dùng lệnh gì bây giờ nhỉ? Thấy bên bển họ hướng dẫn tạo file cahe.flush trong thư mục /var/cache/mod_pagespeed/ mà chưa rõ lắm. Mong Hocvps giải thích thêm với. Tks!

    1. Việt Phương Moderator

      touch /var/ngx_pagespeed_cache/cache.flush
      Trước đó bạn kiểm tra có tồn tại file đó không

      1. Trất Minh 38 comment

        1. Trước đó không tồn tại file cache.flush đó Mod Việt Phương ơi, mình cũng chưa rõ cách làm của việc tạo file này lắm. |
        2. Ngoài cách đó, thì mình đọc theo hướng dẫn tại trang chủ thì còn có 3 method khác nhau là HTTP GET, HTTP PURGE, Admin GUI để purge cache, nhưng mình vẫn chưa phân biệt được. Nếu như cài được cái pagespeed_admin thì việc purge cache này trở nên rất dễ dàng rồi nhỉ (do site mình cài ssl nên chưa vô được). Tài liệu về flush cache tại trang chủ: https://www.modpagespeed.com/doc/system#flush_cache
        3. Mình còn thắc mắc nữa là nếu xài pagespeed thì có xung đột gì với cache của W3 total cache hoặc của cloudflare (rocket loader) không nhỉ?

        1. Việt Phương Moderator

          1 & 2: Touch cũng là câu lệnh tạo file nếu chưa có rồi nên bạn kiểm tra xem cache đc xóa chưa. Nếu chưa thì bạn xóa thủ công là xong, cũng chỉ 1 dòng lệnh. Xóa toàn bộ thư mục cache bên trong /var/ngx_pagespeed_cache. Còn các phương pháp xóa cache kia thì bạn đọc trên đó để tìm hiểu thêm nhé
          3 Mình không rõ nhé

          1. Trất Minh 38 comment

            Vậy là mình xóa hết sạch file trong thư mục /var/ngx_pagespeed_cache/ đã là xóa cache :)) nhiều khi cứ nghĩ phức tạp quá, cám ơn Mod Việt Phương. Tiện thể cho hỏi Mod lệnh xóa toàn bộ file và thư mục con trong thư mục /var/ngx_pagespeed_cache/ với ạ. Nhiều file và thư mục xóa mỏi tay quá, mà xóa hẳn thư mục ngx_pagespeed_cache đi rồi tạo & phân quyền lại thì mình nghĩ cũng chưa phải tối ưu lắm 😛

          2. Việt Phương Moderator

            rm -rf /var/ngx_pagespeed_cache/*
            service nginx restart

            Note: Việc bạn có thể thử cách này
            1. Thêm dòng sau vào Nginx Conf cạnh những dòng pagespeed bạn đã thiết lập rồi restart lại Nginx
            pagespeed EnableCachePurge off;
            2. Check có tồn tại /var/ngx_pagespeed_cache/cache.flush không đồng thời chạy touch /var/ngx_pagespeed_cache/cache.flush

    1. Việt Phương Moderator

      Bạn phải cấu hình thêm đoạn này gần đoạn PageSpeed của bạn
      pagespeed AdminPath /pagespeed_admin;

        1. Trất Minh 38 comment

          1. Mình thắc mắc thêm là nếu cài thành công pagespeed_admin thì bất kì ai cũng có thể truy cập vào được ạ :O Tại vì theo mình đọc thấy thì cứ truy cập như kiểu hocvps.com/pagespeed_admin là sẽ vào xem được @@ ít nhiều cũng như phpredmin của redis cũng phải hiện đăng nhập và mật khẩu chứ nhỉ?
          2. Cần lắm 1 bài hướng dẫn từ hocvps về cách cài pagespeed_admin 🙁 giờ mình truy cập kiểu hocvps.com/pagespeed_admin thì nó báo 403 Forbbiden, mãi mà không qua được ải này, bao giờ mới “phá đảo” được đây :((

          1. Việt Phương Moderator

            1. Đúng bạn, vì trang ý chỉ hiện thông số và purge cache, không có tác dụng gì khác. Để mật khẩu thì bạn phải cấu hình riêng, giống như thiết lập mật khẩu truy cập thư mục
            2. Để mình xem lại nhé, vấn đề có thể bên SSL của bạn vì pagespeed_admin truy cập qua IP/pagespeed_admin và mình đã test bthg với site không sài SSL

  11. Trất Minh 38 comment

    Mình dùng CentOS 6 thì toàn bị lỗi 404 ở lúc cài trình biên dịch thôi ad ơi, không làm sao lên đc gcc 4.8 như hướng dẫn mà toàn ở 4.4.7 thôi. Ad check lại với, cám ơn ad!

      1. Trất Minh 38 comment

        Mình chuyển lên CentOS 7 để tránh bị lỗi như CentOS 6 nên quên mất chụp lại lỗi mất rồi. Nhưng theo mình tìm hiểu thì 2 link trong bài đã được thay đổi rồi mod Việt Phương ơi, mình direct trực tiếp trên chrome 2 link này thì báo 404 (tương tự như lỗi báo lúc mình cài đặt trên VPS). Mod kiểm tra lại giúp mình với, do kiến thức nông cạn nên chưa biết sửa lại link sao cho đúng theo hướng dẫn trong trang linux.web.cern.ch
        https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/slc6X/i386/RPM-GPG-KEY-cern
        https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/devtoolset/slc6-devtoolset.repo

        1. Việt Phương Moderator

          Cám ơn bạn đã thông báo lỗi. Scientific Linux 6 thay đổi link Repo, mình đã update rồi nhé

          1. Trất Minh 38 comment

            Cám ơn Hocvps, Mod Việt Phương luôn đi theo cùng năm tháng giúp đỡ anh em!

  12. Quan Nguyên Phát 52 comment

    Mình có thực hiện Kích hoạt HTTP/2 với Nginx theo hướng dẫn https://hocvps.com/http2-nginx/
    Do trong phần hướng dẫn cũng có phần Biên dịch Nginx, và trong bài này cũng có. Không biết sau khi Kích hoạt HTTP/2 với Nginx thì mình làm theo bài này nữa được không, thực hiện 2 phần như vậy có xung đột gì không?

    1. Việt Phương Moderator

      Được bạn nhé, nhớ dùng configure của phần vừa kích hoạt HTTP/2 xong
      Thường thì mình biên dịch Nginx kèm OpenSSL và pagespeed trong cùng 1 lần cho gọn

      1. Quan Nguyên Phát 52 comment

        mình làm tới bước 2. Cấu hình module ngx_pagespeed, mình sử dụng HocVPS Script. Mình không hiểu để làm tiếp. Ví dụ mình sử dụng 2.1. CoreFilters.
        Thì mình copy những filter vào trong nano /etc/nginx/conf.d/hocvps.com.conf hay là chạy những dòng lệnh đó. Trong nano /etc/nginx/conf.d/hocvps.com.conf có nhiều block server thì chèn vào đâu
        Cảm ơn bạn.

          1. Việt Phương Moderator

            Cho mình Nginx Conf của site bạn đã chính sửa và website bạn là gì

          2. Việt Phương Moderator

            Bạn sử dụng PassThrough Filters à? Cmt trước tưởng bạn dùng CoreFilters
            Nếu PassThrough thì bạn cần kích hoạt thủ công những filter, mình có lưu ý đó
            Với các bạn đã có nhiều kiến thức, trải nghiệm thì nên sử dụng PassThrough. Khi đó sẽ cần tự kích hoạt những filter cần dùng.
            Bạn nên tìm hiểu thêm ý nghĩa và kích hoạt của từng filter nếu muốn sử dụng chức năng nâng cao này
            https://www.modpagespeed.com/doc/config_filters

          3. Quan Nguyên Phát 52 comment

            trong trường hợp mình dùng PassThrough và kích hoạt filter rewrite_images, các hình trong website tự động chuyển sang .webp. Nhưng 1 số hình bị lỗi, còn 1 số hình thì xem bình thường. Lỗi này khắc phụ như thế nào bạn?
            cảm ơn bạn.

          4. Việt Phương Moderator

            Bạn xem đặc điểm chung của những ảnh không chuyển sang webp là đuôi gì? Những ảnh được chuyển là đuôi gì

  13. võ thanh hiếu 3 comment

    make[1]: *** [objs/addon/src/ngx_pagespeed.o] Error4
    make[1]: Leaving directory `/usr/local/src/nginx-1.12.2′
    make: *** [build] Error 2

    bác luân ơi cứu em 🙁 tìm mòn mỏi không ra cách xử lí bạc ạ

    1. Việt Phương Moderator

      Lỗi này không rõ ràng. Bạn kiểm tra lại các yêu cầu về trình biên dịch và ram tối thiểu nhé

  14. Cuong Phan 10 comment

    Hi mod,
    Mình chạy đến đoạn # ./configure …….
    thì bị lỗi như bên dưới, mod xem giùm hướng giải quyết nha. Thanks

    checking for OS
    + Linux 3.10.0-693.5.2.el7.x86_64 x86_64
    checking for C compiler … not found
    ./configure: error: C compiler cc is not found

    1. Việt Phương Moderator

      Bạn thiếu trình biên dịch C. Bạn CentOs gì? Và cho mình kết quả của gcc –version

        1. Việt Phương Moderator

          Mình test vẫn thấy bình thường. Case bạn thì báo lỗi trình biên dịch. Nên bạn chạy lại lệnh cài trình biên dịch, xem có đủ các package đã được cài đặt chưa
          yum -y install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel
          Rồi tiến hành configure lại. Bên cạnh đó, mình thấy hệ thống bạn lâu rồi chưa update thì phải?
          yum -y update

      1. Cuong Phan 10 comment

        Mình đang dùng script hocvps trên CentOs7. Cũng đã chạy lại dòng lệnh “yum -y install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel” nhưng configure vẫn bị báo thiếu trình biên dịch C, có cách nào kiểm tra hoặc cài riêng cái C compiler đó ko vậy Mod? Hoặc cách nào khác ví dụ như compile lại NGINX nếu cần thiết? Thanks

        1. Việt Phương Moderator

          Nếu chỉ compile Nginx bình thường thì không cần nhiều trình biên dịch. Còn để compile Nginx kèm Pagespeed thì bắt buộc cần các trình biên dịch đó. Kiểm tra thì bạn chạy lại lệnh cài đặt trình biên dịch, nếu đã cài rồi thì nó sẽ báo xxx already installed…
          Bạn gửi VPS qua support@hocvps.com mình xem cho

      2. Cuong Phan 10 comment

        Cũng may trước khi vọc vạch có dùng snapshots. Sau restore lại thì đã cài được, chắc phần trước đang tải install thì bị đứt cáp hoặc mạng chập chờn nên bị lỗi plugin C compiler mặc dù kiểm tra báo plugin đầy đủ. Chia sẽ cùng mọi người, thanks Việt Phương đã hỗ trợ

  15. Kinh 3 comment

    Cho mình hỏi,mình cài hocvps cũng lâu rồi,mới đây có cập nhật lên nginx 1.12.2
    Vậy khi muốn cài pagespeed thì có cần gỡ lại hocvps / nginx rồi cài lại từ đầu ko ? hay cứ làm theo hướng dẫn ?
    Và đoạn Biên dịch lại Nginx với việc thêm module PageSpeed ấy,có nghĩa là copy nguyên cả đoạn quote ấy đánh vào cmd putty à bạn ?
    tks:D
    1 cái nữa là bên https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source
    có 1 hd là Automated Install chỉ cần đánh bash <(curl -f -L -sS https://ngxpagespeed.com/install) \
    –nginx-version latest " vậy có khác với ở đây ko ?

    1. Việt Phương Moderator

      1. Không cần nhé bạn. Cứ theo hướng dẫn thay thế Nginx đã cài trong VPS là được
      2. Đúng. Câu lệnh như thế nào bạn thực hiện như thế nấy
      3. Trước mình thử đoạn script ý với HocVPS thì thấy không thành công nên đã tự build theo hướng dẫn của Pagespeed chứ không dùng script của họ

  16. Ngô Văn Cương 142 comment

    build_from_source=false
    checking for psol … not found
    ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.
    Look in /usr/local/src/nginx-1.12.2/objs/autoconf.err for more details.
    mình dính lỗi này

    1. Việt Phương Moderator

      Lỗi này có 2 vấn đề
      1. Thực sự không có PSOL trong thư mục /usr/local/src/incubator-pagespeed-ngx-1.13.35.2-stable/
      2. Trình biên dịch của bạn thiếu. Bạn dùng CentOS gì? Đã cài đủ các trình biên dịch yêu cầu chưa
      gcc --version

  17. Việt Phương Moderator

    Cài đặt cho PageSpeed 1.12.34.3

    # NPS_VERSION=1.12.34.3-stable
    # wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}.zip
    # unzip v${NPS_VERSION}.zip
    # cd ngx_pagespeed-${NPS_VERSION}/
    # NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
    # NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
    # psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
    # [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
    # wget ${psol_url}
    # tar -xzvf $(basename ${psol_url})
  18. Phong Vũ 1 comment

    Chào Luân.
    Sao mình tải về nó lại là thư mục incubator-pagespeed-ngx-1.12.34.3-stable nhỉ. Như vậy mình có gì sai không?
    Cảm ơn bạn !

    1. Việt Phương Moderator

      Mình vừa kiểm tra. Đúng là đã thay đổi. File là v1.12.34.3-stable.zip và giải nén được thư mục incubator-pagespeed-ngx-1.12.34.3-stable

    2. Việt Phương Moderator

      Ok rồi bạn nhé. Mình đã update cho phiên bản mới của PageSpeed

  19. Công Toàn 8 comment

    Mình đã gỡ pagespeed thành công rồi. Nhưng cho hỏi thêm vấn đề khác, ở Hocvps script có cài sẵn memcache chưa nhỉ?

    1. Việt Phương Moderator

      1. Bạn recompile lại Nginx để gỡ pagespeed
      2. HocVPS chưa có memcached bạn nhé.

      1. Công Toàn 8 comment

        Bạn ơi, phiền bạn debug giúp mình trang congtoan.net với, mình đang dùng script hocvps. Hôm qua nghịch cái pagespeed xong, gỡ đi rồi mà bây giờ một số thành phần như images hay script vẫn load dạng pagespeed nên nó làm lỗi cái HTTPS của mình không fully load được. Truy cập bằng Firefox thì cái chỗ HTTPS trên trình duyệt nó cứ báo chấm than màu vàng