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. Công Toàn 8 comment

    Khi đến bước Biên dịch lại Nginx với việc thêm module ngx_pagespeed (giữ nguyên các module cũ) thì báo lỗi này là sao bác ơi!

    checking for psol … not found
    ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.

    1. Việt Phương Moderator

      1. Không có thư mục psol bên trong pagespeed
      2. gcc --version của bạn ra kết quả gì

      1. Công Toàn 8 comment

        gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
        Copyright (C) 2010 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions. There is NO
        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

        Đây bác ơi!

        1. Việt Phương Moderator

          1. Bạn kiểm tra ý 1 chưa?
          2. gcc yêu cầu 4.8 trở lên nhé bạn

          1. Công Toàn 8 comment

            Mình làm được rồi.

            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’ –with-openssl=/usr/local/src/openssl-1.1.0f –add-module=/usr/local/src/ngx_pagespeed-1.12.34.2-stable

            Nhưng cho hỏi, đến bước 2.1 làm như thế nào bác nhỉ? có phải chỉnh sửa và thêm đoạn code ở 2.1 của bác vào file conf của domain không (mình dùng script của hocvps để cài VPS)

          2. Việt Phương Moderator

            Đúng rồi nhé bạn. Thêm vào block server show webroot ý. Sửa với từng domain (nếu bạn dùng nhiều domain)

  2. Vu Dang Khoi 14 comment

    à lỗi này trước nữa

    “adding module in /usr/local/src/ngx_pagespeed-1.12.34.2-stable
    mod_pagespeed_dir=/usr/local/src/ngx_pagespeed-1.12.34.2-stable/psol/include
    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.1/objs/autoconf.err for more details. “

    1. Việt Phương Moderator

      Hiện không có PSOL bên trong thư mục ngx_pagespeed. Bạn kiểm tra lại nhé

      1. Vu Dang Khoi 14 comment

        Có thư mục PSOL bên trong mà
        [root@localhost ngx_pagespeed-1.12.34.2-stable]# dir
        1.12.34.2-x64.tar.gz config.make LICENSE PSOL_BINARY_URL scripts test
        config cpp_feature psol README.md src

          1. Vu Dang Khoi 14 comment

            đây bạn ạ
            [root@localhost home]# gcc –version
            gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
            Copyright (C) 2010 Free Software Foundation, Inc.
            This is free software; see the source for copying conditions. There is NO
            warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

          2. Việt Phương Moderator

            Bạn dùng phiên bản 4.8 trở lên mới đủ compile nhé. Như trong bài note của mình ý

          3. Vu Dang Khoi 14 comment

            Vậy giờ làm thế nào bạn? có update được không bạn?

          4. Việt Phương Moderator

            Bạn đọc lại thật kỹ bài viết phần Chuẩn bị nhé

          5. Vu Dang Khoi 14 comment

            Mình có đọc nhưng quên không để ý 4.4 với 4.8

          6. Vu Dang Khoi 14 comment

            đánh liều làm lại từ đầu
            vậy là được rồi bạn ạ. cám ơn bạn nhiều

  3. Vu Dang Khoi 14 comment

    Minh hỏi chút,

    Mình gặp gỗi này mà mò mãi không ra :
    [root@localhost nginx-1.12.1]# make
    make: *** No rule to make target `build’, needed by `default’. Stop.
    Các bạn giúp mình chút

  4. Nam Luu 21 comment

    Bạn nào có cấu hình chuẩn của pagespeed này cho mình xin với

    Mình đang bị lỗi khi combine_javascript, link khi combine bị 404

  5. Lê Hoài Bảo 4 comment

    Mình gặp lỗi ./configure: error: module ngx_pagespeed requires the pagespeed optimization library.

    1. Việt Phương Moderator

      Bạn chưa có PSOL bên trong thư mục pagespeed rồi. Bạn kiểm tra lại nhé

        1. Việt Phương Moderator

          Các phiên bản bạn sử dụng? Hệ điều hành, nginx, pagespeed, gcc+ ?
          gcc --version

          1. Việt Phương Moderator

            Thế bạn chưa nâng cấp gcc như trong bài viết đề cập rồi, chắc thiếu bước scl enable devtoolset-2 bash

    1. Việt Phương Moderator

      Mình hiện đã update theo phiên bản PageSpeed và Nginx mới. Bạn tham khảo nhé. Gặp lỗi gì thì bạn post thông báo ra nhé

  6. Hải 21 comment

    2 lệnh cuối cùng báo lỗi:
    [root@OEM nginx-1.6.0]# make
    make: *** No rule to make target `build’, needed by `default’. Stop.
    [root@ nginx-1.6.0]# make install
    make: *** No rule to make target `install’. Stop.

    1. Việt Phương Moderator

      Bạn cài đầy đủ các bộ phiên dịch mã nguồn chưa? Phần yum install gcc-c++ pcre-devel zlib-devel make wget ý. Nginx mới nhất thì dùng 1.12
      Cài thêm yum install openssl-devel

      1. Ngô Quang Đạo 18 comment

        Liệu dùng 2 cái đồng thời có vấn đề gì không Việt Phương? Memcached là addon cache, còn cái này là addon để tối ưu source mà 😀

        1. Việt Phương Moderator

          Mình ít thấy dùng đồng thời, không chắc lắm về trường hợp này cũng như Pagespeed hiện tại ít dùng

  7. Nguyễn Văn Hải 2 comment

    Chào admin mình đã cài và đang chạy web bằng hocvps script https://hocvps.com/script/
    giờ làm thế nào để add ngx_pagespeed này mà không phải gỡ ra cài lại ? mong admin giúp đỡ

    1. Việt Phương Moderator

      Bạn chỉ cần rebuild lại nginx kèm pagespeed như hướng dẫn, không cần thiết phải gỡ cả hệ thống

  8. Thai 6 comment

    Ad cài xong pagespeed, gõ lệnh khởi động Nginx thì báo: Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.?

    1. Việt Phương Moderator

      Không khởi động được Nginx. Vấn đề thường ở việc cấu hình lỗi file Nginx conf của domain chính. Bạn gõ # systemctl status nginx.service để biết kết quả hơn. Gửi mình kết quả đó và nội dung file Nginx conf của domain chính
      Paste qua đây cho gọn nhé: http://paste2.org/

  9. Cuong Tran 28 comment

    chinh file hocvps.com.conf
    server {
    listen 80 hocvps.com;

    access_log off;
    error_log off;
    # error_log /home/hocvps.com/logs/error.log;
    root /home/hocvps.com/public_html;
    index index.php index.html index.htm;
    server_name hocvps.com;

    # 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;
    }

    và bị thế này

    502 Bad Gateway

    nginx

    cho hỏi mình sẽ xử ly the nao luân ơi .

    1. Việt Phương Moderator

      Thông báo 502 Bad Gateway chung chung quá. Mà domain name bạn để hocvps.com à hay bạn copy y nguyên đoạn code trên

  10. Tuyn Doan 1 comment

    Hi ,
    Mình bị lỗi này là sao bạn :
    ———————————–
    2016/09/13 05:30:22 [alert] 22193#22193: worker process 32010 exited on signal 11
    2016/09/13 05:30:22 [error] 32011#32011: [ngx_pagespeed 1.11.33.3-0] Unable to find SHM segment [1]globalstatistics to attach to.
    2016/09/13 05:30:22 [warn] 32011#32011: [ngx_pagespeed 1.11.33.3-0] Problem during shared memory setup; statistics functionality unavailable.
    ———————————-

    1. Luân Trần Admin

      Cái này compile từ source, nên nếu muốn bỏ thì bạn remove Nginx rồi install lại Nginx là ok.

  11. Truong Minh Tam 11 comment

    VPS đang chạy site wordpress rồi có cài pagespeed được không bạn. Sao trong bài tối ưu tốc độ không thây bạn nhắc đến pagespeed này ? hình như thấy update đã bỏ rồi ?

      1. Nguyễn Văn Hải 2 comment

        Chào admin. Mình đã cài hocvps script https://hocvps.com/script/ giờ muốn add thêm ngx_pagespeed thì làm thế nào. Mình thấy hướng dẫn trên thì phải cài lại hết, mong admin cho mình một chỉ dẫn.

  12. Bảo 17 comment

    PageSpeed có bản cập nhật mới rồi, hiện tại là 1.10.xxx
    Sao Luân không cập nhật bài viết đi ạ ?

  13. Nam Luu 21 comment

    Cho mình hỏi
    Mình kết hợp giữa pagespeed, memcached, w3 total cache cho wp chạy ngon lành rồi
    Nhưng có 1 điều là ko biết cách xóa cache mà pagespeed sinh ra vì khi chỉnh sửa css thì nó ko tự thay đổi.
    Có cách nào tự động ko? hay phải vào file domain.conf xóa cấu hình pagespeed đi sửa xong rồi add lại 🙂

  14. Dũng 25 comment

    Mình cài đến bước cuối cùng bước compile Nginx với module ngx_pagespeed thì báo lỗi thế này
    http://www.upsieutoc.com/images/2016/03/16/Zalo_ScreenShot_16_3_2016_2315830.png

    cd /usr/local/nginx-1.6.0
    ./configure –add-module=/usr/local/nginx/modules/ngx_pagespeed-release-${NPS_VERSION}-beta –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –with-http_ssl_module –conf-path=/etc/nginx/nginx.conf –with-http_gzip_static_module –with-http_realip_module –group=nginx –user=nginx –pid-path=/var/run/nginx.pid –with-http_stub_status_module

    1. Luân Trần Admin

      Bạn copy đoạn thông báo lỗi rồi paste lên Google search sẽ ra ngay vẫn đề. Cái này do thư viện OpenSSL.

      1. Dung 25 comment

        Mình đang dùng hocvps bản mới nhất bạn có thể cho mình xin hướng dẫn khắc phục với được không cảm ơn bạn

      2. Dũng 25 comment

        Bạn có thể cho mình xin link hướng dẫn với được ko?
        Mình ko rành về vps lắm
        Mình đang dùng bản hocvps mới nhất

  15. Văn Tiến 5 comment

    Bước make thì báo lỗi anh Luân ơi.

    checking for psol … found
    List of modules (in reverse order of applicability): ngx_http_write_filter_module ngx_http_header_filter_module ngx_http_chunked_filter_module ngx_http_range_header_filter_module ngx_pagespeed_etag_filter ngx_http_gzip_filter_module ngx_pagespeed ngx_http_postpone_filter_module ngx_http_ssi_filter_module ngx_http_charset_filter_module ngx_http_userid_filter_module
    + ngx_pagespeed was configured
    checking for PCRE library … found
    checking for PCRE JIT support … found
    checking for OpenSSL library … not found

    ./configure: error: SSL modules require the OpenSSL library.
    You can either do not enable the modules, or install the OpenSSL library
    into the system, or build the OpenSSL library statically from the source
    with nginx by using –with-openssl= option.

    [root@vultr nginx-1.6.0]# make
    make: *** No rule to make target `build’, needed by `default’. Stop.
    [root@vultr nginx-1.6.0]# make install
    make: *** No rule to make target `install’. Stop.

  16. John Kenny 23 comment

    [root@vultr nginx-1.6.0]# nginx -V
    nginx version: nginx/1.8.0
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (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 –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-http_ssl_module –with-http_realip_module –with-http_addition_module –with-http_sub_module –with-http_dav_module –with-http_flv_module –with-http_mp4_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_random_index_module –with-http_secure_link_module –with-http_stub_status_module –with-http_auth_request_module –with-mail –with-mail_ssl_module –with-file-aio –with-ipv6 –with-http_spdy_module –with-cc-opt=’-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’

    nginx -V Nó báo vậy Luân ơi. Xin hướng dẫn khắc phục

        1. Luân Trần Admin

          Hic, bạn hỏi không rõ ràng. Như thế kia là cài không được rồi, đâu có giống như test trong bài

  17. Thanh Nguyen 4 comment

    Hi Luân,
    VPS mình đang chạy bình thường, mình có cài thêm nginx-pagespeed. Cài đặt xong thì không khởi động lại được Nginx báo lỗi do Gzip. Lỗi thông báo như sau:
    [root@CENTOS6-64 ~]# nginx -t
    nginx: [emerg] unknown directive “gzip_static” in /etc/nginx/nginx.conf:45
    nginx: configuration file /etc/nginx/nginx.conf test failed
    Mình Hỏi kỹ thuật bên nhà cung cấp thì họ bảo chưa cài Gzip, và bảo đọc hướng dẫn ở đây: http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html#gzip_static Sau đó bảo mình cài lại Nginx. Hixxx. Luân giúp mình với.
    Cảm ơn!

      1. Thanh Nguyen 4 comment

        Hi Luân, Dòng 45 là: gzip_static on;

        Dưới đây là toàn bộ nội dung file nginx.conf

        user nginx;
        worker_processes 2;
        worker_rlimit_nofile 65536;

        error_log /var/log/nginx/error.log warn;
        pid /var/run/nginx.pid;

        events {
        worker_connections 2048;
        }

        http {
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        pagespeed On;
        pagespeed FileCachePath “/var/cache/nginx_pagespeed”;

        log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
        ‘$status $body_bytes_sent “$http_referer” ‘
        ‘”$http_user_agent” “$http_x_forwarded_for”‘;

        access_log off;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay off;
        types_hash_max_size 2048;
        server_tokens off;
        server_names_hash_bucket_size 128;
        client_max_body_size 20m;
        client_body_buffer_size 256k;
        client_body_in_file_only off;
        client_body_timeout 60s;
        client_header_buffer_size 256k;
        client_header_timeout 20s;
        large_client_header_buffers 8 256k;
        keepalive_requests 150;
        keepalive_timeout 30;
        keepalive_disable msie6;
        reset_timedout_connection on;
        send_timeout 60s;
        gzip on;
        gzip_static on;
        gzip_disable “msie6”;
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_buffers 16 8k;
        gzip_http_version 1.1;
        gzip_types text/plain text/css application/json text/javascript application/javascript text/xml application/xml application/xml+rss;

        #include /etc/nginx/conf.d/*.conf;
        fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
        fastcgi_cache_key “$scheme$request_method$host$request_uri”;
        fastcgi_cache_use_stale error timeout invalid_header http_500;
        fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
        include /etc/nginx/conf.d/*.conf;
        }

        Tiếp nữa nếu rebuild lại nginx thì làm như làm Luân, tại mình cài hocvps script?

        1. Luân Trần Admin

          Bạn off nó đi xem sao, có thể confict gzip khi bạn cài thêm cái kia rồi.

  18. thanh 6 comment

    Ad ơi, cho mình hỏi. Mình cài hocvps script bản mới nhất và đã cài nginx (1.8.0). ở bài hướng dẫn trên mình thấy có hướng dẫn tải nginx 1.6.0. Đã cài rồi thì mình cài đặt pagespeed như thế nào nhỉ? Mình mày mò làm mãi vẫn không được 🙁

    1. Luân Trần Admin

      ngx_pagespeed sẽ được build cùng với nginx từ source code nên bạn không dùng được bản Nginx cài kèm HocVPS Script đâu, phải uninstall nó đi rồi thực hiện theo bài hướng dẫn này.

  19. Steve Diện 21 comment

    Dùng PassThrough thì dùng cái nào phải enablefilter cái đấy, còn corefilter nó enable sẵn những cái của nó rồi phải không Luân

    1. Luân Trần Admin

      Đúng rồi, CoreFilters đã enable sẵn những cái filter được Google cho là phổ biến với đa số người dùng rồi.

  20. Canhdx 3 comment

    Cho em hỏi nêu dùng Nginx làm Proxy cho Apache thì có áp dụng được thêm cái Pagespeed này không ạ.

    1. Luân Trần Admin

      Nếu dùng Nginx làm Proxy cho Apache thì vẫn cài được thêm Pagespeed, nhưng cho webserver Apache nhé.

  21. HOA VO 6 comment

    Lỗi trên là do cài thiếu thư viện OpenSSL, mình đã tự xử lý được, xin thông báo để ae gặp những trường hợp tương tự tham khảo.

    Mình đã cài thành công google pagespeed, anh e nào cần giao lưu thì vào http://suaphancung.com xem nhé!

    Tks all!

  22. Tien Tran 6 comment

    Mình đã cài được theo như hướng dẫn của bạn nhưng mình có 1 câu hỏi là google có gợi ý cài pagespeed tốt cho website như thế tốt cho seo nhưng mình có đọc được comment của Luân trên 1 bài nào trên hocvps là cài pagespeed trên vps không tốt cho seo. Mình không hiểu sao Luân lại khuyến cáo mọi người thế. Bạn có thể giải thích hơn chút được không?

  23. alviss 2 comment

    Cho hỏi em cài thế này mà lại hiển lỗi này thì làm sao khắc phục ạ
    mkdir /var/ngx_pagespeed_cache
    chown nginx:nginx /var/ngx_pagespeed_cache

    Lỗi
    chown: invalid user: ‘nginx:nginx’

    1. Luân Trần Admin

      Bạn check lại xem có phải Webserver của bạn chưa cài nginx đúng không?

  24. Đạo 34 comment

    chắc em không có phúc dùng cái này rồi, cài mãi không được, dù sao thì website cũng nhanh hơn VPS Vultr 1G mà cũng thấy nhanh hơn hosting đặt tại Việt Nam, thiếu cái CDN tại Việt Nam nữa là ngon.

  25. Đạo 34 comment

    vậy cái này gửi file sẽ gửi lên máy chủ google nhưng nếu lại đứt cáp thì sao anh, tốc độ nó có giảm đi đáng kể không?

    1. Luân Trần Admin

      Không có gửi file gì lên google đâu bạn, toàn bộ thao tác thực hiện ở VPS chứ

  26. Triều 9 comment

    A.Luân cho mình hỏi cái này hoạt động chung với w3 total cache đc không a :d vì cái minify của w3t hoạt động không tốt lắm nên mình tính tắt đi để ngx_pagespeed thay thế 🙂
    Với mấy cái filter của ngx_pagespeed như minify css,js nếu bật lên muh lỗi theme thì tắt đi là trở lại bình thường phải không a :d

    1. Luân Trần Admin

      Cái này hoạt động chung được nhé, nếu lỗi tắt đi thì lại ok thôi.

  27. tuantranplus 2 comment

    Tải về PSOL (PageSpeed Optimization Libraries) và giải nén vào trong thư mục ngx_pagespeed

    đoạn này thì phía dưới code xư lý sẵn rồi à anh?
    hay là phải tự tải về rồi up lên?
    [root@WAPSEO nginx-1.6.0]# nginx -V
    nginx version: nginx/1.6.2
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
    TLS SNI support enabled
    configure arguments: –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx –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-http_ssl_module –with-http_realip_module –with-http_addition_module –with-http_sub_module –with-http_dav_module –with-http_flv_module –with-http_mp4_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_random_index_module –with-http_secure_link_module –with-http_stub_status_module –with-http_auth_request_module –with-mail –with-mail_ssl_module –with-file-aio –with-ipv6 –with-http_spdy_module –with-cc-opt=’-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’

    như thế được chưa ạ?

    1. Luân Trần Admin

      Bạn sử dụng những câu lệnh là tiến hành cài đặt rồi đó. Đoạn trên là mình ghi ý nghĩa của câu lệnh.

  28. Châu Nguyễn 11 comment

    Bác Luân giúp em vấn đề này với ạ
    – Cuối cùng, compile Nginx với module ngx_pagespeed và tiến hành cài đặt
    Em làm tới bước này
    VPS của e đã cài HOCVPS Script nên ko cần cài nginx nữa
    Đã thấy folder pagespeed /usr/local/nginx/modules/ngx_pagespeed-release-1.8.31.4-beta
    cd /usr/local/nginx
    make
    — > Lỗi : make: *** No targets specified and no makefile found. Stop.
    make install
    –> make: *** No rule to make target `install’. Stop.

    Em không biết phải làm sao để install pagespeed

    1. Luân Trần Admin

      Bác sử dụng phiên bản HocVPS Script nào vậy, bản mới 1.1 giờ bắt buộc phải làm toàn bộ các bước nhé.

  29. tùng nguyễn 2 comment

    [root@TungVps nginx-1.6.2]# make
    make: *** No rule to make target `build’, needed by `default’. Stop.
    [root@TungVps nginx-1.6.2]#

    mình bị lỗi này là sao vậy Luân

      1. Coupon 4 comment

        Vậy là sao . 2 lỗi nó khác nhau mà bác hướng dẫn cụ thể đc k . E cũng bị dính lỗi này bác ơi

      2. Coupon 4 comment

        Lúc em làm đến khúc này :
        cd /usr/local/nginx-1.6.0
        ./configure –add-module=/usr/local/nginx/modules/ngx_pagespeed-release-${NPS_VERSION}-beta –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –with-http_ssl_module –conf-path=/etc/nginx/nginx.conf –with-http_gzip_static_module –with-http_realip_module –group=nginx –user=nginx –pid-path=/var/run/nginx.pid –with-http_stub_status_module

        Thí kết quả trả về lỗi như thế này :

        checking for PCRE JIT support … not found
        checking for OpenSSL library … not found

        ./configure: error: SSL modules require the OpenSSL library.
        You can either do not enable the modules, or install the OpenSSL library
        into the system, or build the OpenSSL library statically from the source
        with nginx by using –with-openssl= option.

        Như vậy là sao vậy bác

  30. Bao nguyen 3 comment

    Mình sử dụng HocVPS script bản mới ra, centos 7. Sao đến bước compile Nginx với module ngx_pagespeed thì lại không tìm thấy ./configure nhỉ ? đã thử cd /usr/local/nginx , vì vào winscp thấy ko có folder nginx 1.6.0 .
    Giúp mình với 🙂 Thanks bạn.

    1. Luân Trần Admin

      À hướng dẫn này mình sử dụng cho bản HocVPS Script cũ, bản mới không dùng cách compile nginx nữa nên bạn ko thấy folder đó. Bạn hãy tải về nginx manual nhé.

      1. Hung 2 comment

        Bạn hướng dẫn khắc phục rõ hơn tí được không, mình cũng bị ở đoạn đó, mà tìm cách sửa mãi không được

  31. android 25 comment

    Bác hướng dẫn bằng lệnh cụ thể với Hocvps script V1 đc ko mình làm mãi mà ko đc các đường dẫn thư mục chẳng giống hướng dẫn gì cả

      1. android 25 comment

        Cái phần cấu hình ngx_pagespeed 2 cái đó nó có khác nhau như thế nào bạn nhỉ?
        Bạn nói phù hợp với trẻ trâu và bạn già mình chẳng hiểu kiểu gì.

        1. Luân Trần Admin

          Cách 2 dành cho những người advanced, nếu bạn mới làm quen với vps thì nên cài theo cách 1, đơn giản và mì ăn liền hơn.

  32. DaiThinh 11 comment

    Luân ơi, cho mình hỏi. mình restart thì lỗi sau:
    [root@kenh76 nginx-1.6.0]# service nginx restart
    nginx: [emerg] invalid parameter “kenh76.vn” in /etc/nginx/conf.d/kenh76.vn.conf
    :106
    nginx: configuration file /etc/nginx/nginx.conf test failed
    khắc phục thế nào vậy Luân?
    Cảm ơn cậu rất nhiều.

  33. Phan Thành 4 comment

    Luân cho mình hỏi, mình làm đến bước Tải mã nguồn ngx_pagespeed rồi nhưng có vẻ link bị die, toàn 404 thôi. Có link nào khác thay thế được không nhỉ?

    1. Luân Trần Admin

      Mình thấy link vẫn bình thường, bạn chú ý paste cả dòng này NPS_VERSION=1.8.31.4 trong Terminal nhé

      1. Phan Thành 4 comment

        Ừ, mình làm được rồi. Cho mình hỏi thêm là nếu đã cài trước nginx rồi thì giờ phải cài đặt lại đúng không? Và nếu phải làm thế thì những cái cấu hình trước đã chỉnh sửa trong nginx có mất đi không?

        1. Luân Trần Admin

          Bạn hãy copy file cấu hình và lưu ra chỗ khác, sau khi cài lại nginx thì paste lại là được.

  34. Long 10 comment

    Mình đang dùng hocvps script thì cài cái này có ảnh hưởng gì ko anh Luân nhỉ?