Sanya Nginx tare da Ngx_Pagespeed (Haɓaka Saurin) akan Debian da Ubuntu
A cikin labarinmu na ƙarshe, mun nuna yadda ake hanzarta aikin Nginx tare da Ngx_Pagespeed akan CentOS 7. A cikin wannan koyawa, zamuyi bayanin yadda ake shigar da Nginx tare da ngx_pagespeed akan tsarin Debian da Ubuntu don haɓaka aikin gidajen yanar gizon Nginx.
Nginx [engine x] kyauta ne kuma buɗaɗɗen tushe, sanannen uwar garken HTTP mai ƙarfi da yawa akan gidan yanar gizo: sananne saboda babban aiki da kwanciyar hankali. Hakanan yana aiki azaman wakili na baya, saƙo na gabaɗaya da uwar garken wakili na TCP/UDP, kuma ana iya tura shi azaman ma'aunin nauyi.
Ngx_pagespeed kyauta ne kuma buɗaɗɗen tushe Nginx module wanda aka yi niyya don haɓaka saurin rukunin yanar gizo tare da rage lokacin ɗaukar shafi; yana rage yawan lokacin da ake ɗauka don masu amfani don dubawa da hulɗa tare da abun ciki akan rukunin yanar gizon ku.
- Taimakawa HTTPS tare da sarrafa URL.
- Haɓaka hoto: cire meta-data, haɓaka mai ƙarfi, sake matsawa.
- CSS da 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.
Mataki 1: Shigar Nginx daga Source
1. Don shigar da Nginx tare da ngx_pagespeed daga tushen da ake buƙatar bin fakitin da za a shigar akan tsarin.
$ sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. Na gaba, zazzage fayilolin tushen sabon sigar Nginx (1.13.2 a lokacin wannan rubutun) ta amfani da umarnin wget kuma cire fayilolin kamar yadda aka nuna a ƙasa.
$ mkdir -p ~/make_nginx $ cd ~/make_nginx $ wget -c https://nginx.org/download/nginx-1.13.2.tar.gz $ tar -xzvf nginx-1.13.2.tar.gz
3. Na gaba, sami fayilolin tushen ngx_pagespeed kuma ku cire zip ɗin da aka matsa kamar haka.
$ wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip $ unzip v1.12.34.2-stable.zip
4. Sa'an nan kuma matsa zuwa cikin unzipped ngx_pagespeed directory kuma zazzage dakunan karatu na PageSpeed don tsara 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. Na gaba matsawa cikin nginx-1.13.2 directory, kuma saita tushen Nginx ta amfani da umarni masu zuwa.
$ cd ~/make_nginx/nginx-1.13.2 $ ./configure --add-module=$HOME/make_nginx/ngx_pagespeed-1.12.34.2-stable/ ${PS_NGX_EXTRA_FLAGS}
6. Na gaba, tattara kuma shigar Nginx kamar haka.
$ make $ sudo make install
7. Bayan aikin shigarwa ya cika, gudanar da umarnin da ke ƙasa don ƙirƙirar alamun da suka dace don Nginx.
$ sudo ln -s /usr/local/nginx/conf/ /etc/nginx $ sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Mataki 3: Ƙirƙirar Fayil na Unit Nginx don SystemD
8. Anan, zaku ƙirƙiri fayil ɗin rukunin Nginx da hannu tunda systemd shine tsarin init akan sabbin sigogin Debian da tsarin Ubuntu.
Da farko, ƙirƙirar fayil ɗin /lib/systemd/system/nginx.service.
$ sudo vi /lib/systemd/system/nginx.service
Sannan zazzage fayil ɗin sabis na tsarin NGINX manna tsarin fayil ɗin naúrar cikin fayil ɗin.
[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. Yanzu, fara sabis na nginx don lokacin, kuma kunna shi don farawa a boot boot ta amfani da umarnin da ke ƙasa.
$ sudo systemctl start nginx $ sudo systemctl enable nginx
Muhimmi: Bayan fara sabis na Nginx, kuna iya ganin kuskure kamar yadda aka nuna a hoton allo na ƙasa.
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
Don warware shi, buɗe fayil ɗin Nginx /etc/nginx/nginx.conf kuma saka layin da ke gaba.
#pid logs/nginx.pid; to pid /run/nginx.pid;
A ƙarshe sake kunna sabis na nginx.
$ sudo systemctl daemon-reload $ sudo systemctl start nginx $ sudo systemctl status nginx
Mataki 4: Sanya Nginx Tare da Module Gudun Shafuka
10. Yanzu da aka shigar da Nginx kuma yana aiki akan tsarin ku, kuna buƙatar kunna Ngx_pagespeed module. Da farko ƙirƙirar kundin adireshi inda tsarin zai adana fayilolin don gidan yanar gizon ku kuma saita izini masu dacewa akan wannan kundin adireshi kamar haka.
$ sudo mkdir -p /var/ngx_pagespeed_cache $ sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. Don kunna Ngx_pagespeed module, buɗe fayil ɗin sanyi na Nginx.
$ sudo 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" { }
Lura: Idan kun tura duk wani runduna mai kama da nginx akan uwar garken, ƙara umarnin saurin shafi na sama zuwa kowane shingen uwar garken don kunna Ngx_pagespeed akan kowane rukunin yanar gizo.
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 /run/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; # } #} }
Ajiye kuma rufe fayil ɗin.
12. Sa'an nan kuma duba idan syntax na fayil na Nginx ba shi da kuskure ta hanyar gudanar da umarnin da ke ƙasa, idan daidai ne, za ku ga fitarwa a ƙasa:
$ sudo nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
13. Bayan haka sake kunna uwar garken Nginx don aiwatar da canje-canjen kwanan nan.
$ sudo systemctl restart nginx
Mataki 5: Gwajin Nginx tare da Ngx_pagespeed
14. Yanzu gwada ko Ngx-pagespeed yanzu yana aiki tare da Nginx ta amfani da umarnin cURL da ke ƙasa.
$ curl -I -p http://localhost
Idan kun kasa ganin rubutun da ke sama, to koma zuwa mataki na 10 kuma a hankali ku bi umarnin don kunna Ngx-pagespeed tare da matakai masu zuwa.
Ma'ajiyar Ngx-pagespeed Github: https://github.com/pagespeed/ngx_pagespeed
Idan kuna son tabbatar da sabar gidan yanar gizon Nginx, to muna ba da shawarar karantawa ta wannan koyawa mai amfani: Jagorar Ƙarshen don Amintacce, Harden da Inganta Ayyukan Nginx.
Shi ke nan! A cikin wannan koyawa, mun bayyana yadda ake shigar da Nginx tare da ngx_pagespeed akan Debian da Ubuntu. Idan kuna da wata tambaya ku aiko mana ta amfani da fam ɗin sharhinmu na ƙasa.