Sauƙaƙe Ayyukan Nginx tare da Ngx_Pagespeed akan CentOS 7


Nginx [engine x] kyauta ne kuma mai buɗewa, dandamalin giciye, sabar gidan yanar gizo mai ƙarfi da software na juyawa da aka rubuta a cikin C. Hakanan daidaitaccen IMAP/POP3 ne da TCP/UDP uwar garken wakili, kuma ana iya amfani dashi azaman kaya. ma'auni.

Nginx sanannen uwar garken HTTP ne (kwatankwacin uwar garken Apache HTTP) yana ba da ƙarfi da yawa akan yanar gizo; ya shahara saboda babban aiki da kwanciyar hankali.

Akwai abubuwa masu mahimmanci daban-daban da za ku yi la'akari da lokacin da kuke son inganta ƙwarewar mai amfani akan rukunin yanar gizonku, gami da saurin rukunin yanar gizo da saurin shafi (wanda kuma aka sani da lokacin ɗaukar shafi). Idan Nginx ke sarrafa rukunin yanar gizon ku, to kuna iya amfani da ngx_pagespeed don wannan dalili.

Ngx_pagespeed kyauta ne kuma buɗaɗɗen tushe Nginx module ɗin da ake amfani dashi don haɓaka saurin rukunin yanar gizo tare da rage lokacin ɗaukar shafi. Yana rage lokacin da ake ɗauka don masu amfani don gani da hulɗa tare da abun cikin rukunin yanar gizon ku.

  • Tallafi don HTTPS da sarrafa URL.
  • Haɓaka hoto: cire meta-data, haɓaka mai ƙarfi, sake matsawa.
  • CSS & JavaScript minification, concatenation, inlining, and outlining.
  • Ƙananan kayan aiki.
  • Dakatad da hoto da lodin JavaScript.
  • Sake rubutawa HTML.
  • Tsawon rayuwa na cache.
  • Yana ba da damar daidaita sabar da yawa da sauran su.

A cikin wannan koyawa, za mu nuna yadda ake shigar da Nginx tare da ngx_pagespeed da gwada duk shigarwa akan RHEL/CentOS 7.

Hankali: Masu amfani da Debian da Ubuntu na iya bin wannan jagorar don Sanya Ngx_Pagespeed don Inganta Ayyukan Nginx.

Mataki 1: Shigar Nginx daga Source

1. Don shigar da Nginx tare da ngx_pagespeed yana buƙatar ku tattara shi daga tushe. Da farko shigar da duk fakitin da ake buƙata don haɗa Nginx daga tushe kamar wannan.

# yum install wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel
OR
# yum group install "Development Tools"

2. Na gaba, sami fayilolin tushen sabon sigar Nginx (1.13.2 a lokacin wannan rubutun) ta amfani da umarnin wget kuma cire ƙwallon tar da aka zazzage kamar yadda ke ƙasa.

# mkdir ~/downloads
# cd ~/downloads
# wget -c https://nginx.org/download/nginx-1.13.2.tar.gz
# tar -xzvf nginx-1.13.2.tar.gz

3. Na gaba, zazzage fayilolin tushen ngx_pagespeed kuma buɗe fayilolin da aka matsa.

# wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
# unzip v1.12.34.2-stable.zip

4. Yanzu matsa zuwa cikin unzipped ngx_pagespeed directory kuma sami PageSpeed ingantawa dakunan karatu don hada Nginx kamar haka.

# cd ngx_pagespeed-1.12.34.2-stable/
# wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
# tar -xvzf 1.12.34.2-x64.tar.gz

Mataki 2: Sanya kuma Haɗa Nginx tare da Ngx_Pagespeed

5. Yanzu shiga cikin nginx-1.13.2 directory, kuma saita tushen Nginx ta hanyar aiwatar da umarnin da ke ƙasa.

# cd ~/downloads/nginx-1.13.2
# ./configure --add-module=$HOME/downloads/ngx_pagespeed-1.12.34.2-stable/ --user=nobody --group=nobody --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}

6. Na gaba, tattara kuma shigar Nginx kamar haka.

# make
# make install

7. Lokacin da tsarin shigarwa ya cika, ƙirƙiri duk alamun da ake buƙata don Nginx.

# ln -s /usr/local/nginx/conf/ /etc/nginx/
# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Mataki 3: Ƙirƙirar Fayil na Unit Nginx don SystemD

8. Na gaba, tun da systemd shine tsarin init a cikin CentOS 7, kuna buƙatar ƙirƙirar fayil ɗin Nginx da hannu don shi.

Fisrt, ƙirƙiri fayil ɗin /lib/systemd/system/nginx.service, sannan ɗauki fayil ɗin sabis na tsarin NGINX manna saitin fayil ɗin naúrar cikin fayil ɗin da ke ƙasa.

# vi /lib/systemd/system/nginx.service

Yi la'akari da wurin PIDFile da NGINX binary wanda kuka saita yayin daidaitawa da tattara Nginx, zaku saita su a cikin ma'auni masu dacewa a cikin fayil ɗin naúrar kamar yadda aka nuna a ƙasa:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Ajiye fayil ɗin kuma rufe shi.

9. A wannan gaba, fara sabis na nginx na tsawon lokaci kuma kunna shi don farawa a boot boot ta hanyar bin umarnin da ke ƙasa.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

Mataki 4: Sanya Nginx Tare da Module Gudun Shafuka

10. Tare da shigar Nginx, na gaba, kuna buƙatar kunna Ngx_pagespeed module. Fara da ƙirƙirar kundin adireshi inda tsarin zai adana fayilolin don gidan yanar gizon ku kuma saita izini masu dacewa akan wannan kundin adireshi tare da umarnin da ke ƙasa.

# mkdir -p /var/ngx_pagespeed_cache
# chown -R nobody:nobody /var/ngx_pagespeed_cache

11. Yanzu lokaci ya yi da za a kunna Ngx_pagespeed module, buɗe fayil ɗin sanyi na Nginx kuma ƙara layin da ke ƙasa.

Muhimmi: Idan kun saita kowane runduna ta nginx akan uwar garken, ƙara umarnin saurin shafi na sama zuwa kowane shingen uwar garken don kunna Ngx_pagespeed akan kowane rukunin yanar gizo.

# vi /etc/nginx/nginx.conf

Ƙara waɗannan layin daidaitawar Ngx_pagespeed a cikin toshe uwar garken.

# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;


# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Mai zuwa shine misalin aiki na fayil ɗin sanyi na Nginx tare da kunna Ngx_pagespeed a cikin tsoho mai ɗaukar hoto.

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #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  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost; 
        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        # Pagespeed main settings
        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        # Ensure requests for pagespeed optimized resources go to the pagespeed
        # handler and no extraneous headers get set.

        location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
        location ~ "^/ngx_pagespeed_static/" { }
        location ~ "^/ngx_pagespeed_beacon" { }

        location / {
            root   html;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

12. Bayan haka, tabbatar da cewa Nginx config file ba shi da kuskure ta hanyar gudanar da umarnin da ke ƙasa, za ku ga fitarwa a ƙasa idan duk yana da kyau.

# nginx -t

13. A ƙarshe, sake kunna uwar garken Nginx don canje-canje suyi tasiri.

# systemctl restart nginx

Mataki 5: Gwajin Nginx tare da Ngx_pagespeed

14. Don sanin ko Ngx_pagespeed yanzu yana aiki tare da Nginx, dole ne ya bayyana a cikin taken X-Page-Speed .

# curl -I -p http://localhost

Idan kun kasa ganin rubutun da ke sama, to koma zuwa mataki na 11 kuma ku bi umarnin a hankali don kunna Ngx-pagespeed tare da matakai na gaba.

Ma'ajiyar Ngx-pagespeed Github: https://github.com/pagespeed/ngx_pagespeed

Wannan duka! A cikin wannan koyawa, mun nuna yadda ake shigarwa da daidaita Nginx tare da Ngx_pagespeed module don haɓakawa da haɓaka aikin rukunin yanar gizon da rage lokacin ɗaukar shafi.

Don tabbatar da sabar gidan yanar gizo na Nginx, karanta wannan labarin - Ƙarshen Jagora don Amintacce, Harden da Inganta Ayyukan Sabar Yanar Gizo na Nginx.

Kamar koyaushe, kar a yi jinkirin sanar da mu duk wata tambaya ko tunani game da wannan koyawa.