Ongeza kasi ya Utendaji wa Nginx ukitumia Ngx_Pagespeed kwenye CentOS 7
Nginx [injini x] ni chanzo huria na huria, jukwaa-msingi, seva ya wavuti yenye nguvu na programu ya proksi ya kurudi nyuma iliyoandikwa katika C. Pia ni seva ya kawaida ya IMAP/POP3 na TCP/UDP, na inaweza kutumika kama mzigo. msawazishaji.
Nginx ni seva inayojulikana ya HTTP (inayolinganishwa na seva ya Apache HTTP) inayoendesha tovuti nyingi kwenye wavuti; ni maarufu kwa utendaji wake wa juu na utulivu.
Kuna mambo mbalimbali muhimu ya kuzingatia unapotaka kuboresha matumizi ya mtumiaji kwenye tovuti yako, ikijumuisha kasi ya tovuti na kasi ya ukurasa (pia inajulikana kama muda wa kupakia ukurasa). Ikiwa tovuti yako inaendeshwa na Nginx, basi unaweza kutumia ngx_pagespeed kwa kusudi hili.
Ngx_pagespeed ni moduli ya bure na huria ya Nginx inayotumika kuongeza kasi ya tovuti na kupunguza muda wa upakiaji wa ukurasa. Inapunguza kwa kiasi kikubwa muda unaochukua kwa watumiaji kuona na kuingiliana na maudhui ya tovuti yako.
- Usaidizi wa HTTPS na udhibiti wa URL.
- Uboreshaji wa picha: kuondoa meta-data, kubadilisha ukubwa kwa nguvu, ukandamizaji upya.
- Upunguzaji wa CSS na JavaScript, uunganishaji, ujumuishaji, na muhtasari.
- Uingizaji wa rasilimali ndogo.
- Inaahirisha picha na upakiaji wa JavaScript.
- Kuandika upya kwa HTML.
- Kiendelezi cha akiba cha maisha yote.
- Huruhusu kusanidi kwa seva nyingi na zingine nyingi.
Katika somo hili, tutaonyesha jinsi ya kusakinisha Nginx na ngx_pagespeed na kujaribu usakinishaji mzima kwenye RHEL/CentOS 7.
Makini: Watumiaji wa Debian na Ubuntu wanaweza kufuata mwongozo huu ili Kusakinisha Ngx_Pagespeed ili Kuboresha Utendaji wa Nginx.
Hatua ya 1: Sakinisha Nginx kutoka Chanzo
1. Ili kusakinisha Nginx na ngx_pagespeed inahitaji uikusanye kutoka kwa chanzo. Kwanza sasisha vifurushi vyote vinavyohitajika kuunda Nginx kutoka kwa chanzo kama hiki.
# yum install wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel OR # yum group install "Development Tools"
2. Kisha, pata faili chanzo za toleo jipya zaidi la Nginx (1.13.2 wakati wa uandishi huu) ukitumia amri ya wget na utoe mpira wa lami uliopakuliwa kama ilivyo hapo chini.
# 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. Kisha, pakua faili za chanzo za ngx_pagespeed na ufungue faili zilizobanwa.
# wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip # unzip v1.12.34.2-stable.zip
4. Sasa nenda kwenye saraka ya ngx_pagespeed ambayo haijafunguliwa na upate maktaba za uboreshaji wa PageSpeed ili kukusanya Nginx kama ifuatavyo.
# 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
Hatua ya 2: Sanidi na Unganisha Nginx na Ngx_Pagespeed
5. Sasa nenda kwenye saraka ya nginx-1.13.2, na usanidi chanzo cha Nginx kwa kuendesha amri hapa chini.
# 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. Ifuatayo, kusanya na usakinishe Nginx kama ifuatavyo.
# make # make install
7. Wakati mchakato wa usakinishaji ukamilika, unda ulinganifu wote muhimu kwa Nginx.
# ln -s /usr/local/nginx/conf/ /etc/nginx/ # ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Hatua ya 3: Kuunda Faili ya Kitengo cha Nginx kwa SystemD
8. Kisha, kwa kuwa systemd ni mfumo wa init katika CentOS 7, unahitaji kuunda faili ya kitengo cha Nginx kwa ajili yake.
Kwanza, unda faili /lib/systemd/system/nginx.service, kisha unyakue faili ya NGINX systemd bandika usanidi wa faili ya kitengo kwenye faili iliyo hapa chini.
# vi /lib/systemd/system/nginx.service
Zingatia eneo la PIDFile na binary ya NGINX ambayo umeweka wakati wa kusanidi na kuandaa Nginx, utaziweka katika anuwai zinazofaa kwenye faili ya kitengo kama inavyoonyeshwa hapa chini:
[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
Hifadhi faili na uifunge.
9. Katika hatua hii, anza huduma ya nginx kwa muda wa wastani na uwezeshe kuanza kwenye mfumo wa kuwasha kwa kuendesha amri zilizo hapa chini.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
Hatua ya 4: Sanidi Nginx Ukitumia Moduli ya Kasi ya Kurasa
10. Na Nginx imewekwa, ifuatayo, unahitaji kuwezesha moduli ya Ngx_pagespeed. Anza kwa kuunda saraka ambapo moduli itahifadhi faili za tovuti yako na kuweka ruhusa zinazofaa kwenye saraka hii na amri zilizo hapa chini.
# mkdir -p /var/ngx_pagespeed_cache # chown -R nobody:nobody /var/ngx_pagespeed_cache
11. Sasa ni wakati wa kuwezesha moduli ya Ngx_pagespeed, fungua faili ya usanidi ya Nginx na uongeze mistari iliyo hapa chini.
Muhimu: Ikiwa umesanidi wapangishi wowote wa nginx kwenye seva, ongeza maagizo ya kasi ya kurasa hapo juu kwa kila kizuizi cha seva ili kuwezesha Ngx_pagespeed kwenye kila tovuti.
# vi /etc/nginx/nginx.conf
Ongeza mistari ifuatayo ya usanidi wa Ngx_pagespeed ndani ya kizuizi cha seva.
# 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" { }
Ufuatao ni mfano wa kufanya kazi wa faili ya usanidi wa Nginx na Ngx_pagespeed imewezeshwa katika seva pangishi chaguo-msingi.
#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. Baadaye, hakikisha kwamba faili ya usanidi wa Nginx haina makosa kwa kuendesha amri iliyo hapa chini, utaona matokeo ikiwa yote ni sawa.
# nginx -t
13. Hatimaye, anzisha upya seva ya Nginx ili mabadiliko yaanze kutumika.
# systemctl restart nginx
Hatua ya 5: Kujaribu Nginx kwa Ngx_pagespeed
14. Ili kujua kama Ngx_pagespeed sasa inafanya kazi kwa kushirikiana na Nginx, lazima ionekane kwenye kichwa cha Kasi ya X-Page.
# curl -I -p http://localhost
Iwapo umeshindwa kuona kichwa hapo juu, kisha rudi kwa hatua ya 11 na ufuate kwa uangalifu maagizo ili kuwezesha Ngx-pagespeed na hatua zinazofuata.
Ngx-pagespeed Github hazina: https://github.com/pagespeed/ngx_pagespeed
Ni hayo tu! Katika somo hili, tulionyesha jinsi ya kusakinisha na kusanidi Nginx na moduli ya Ngx_pagespeed ili kuboresha na kuboresha utendakazi wa tovuti na kupunguza muda wa kupakia ukurasa.
Ili kupata seva ya wavuti ya Nginx, soma nakala hii - Mwongozo wa Mwisho wa Kulinda, Kuimarisha na Kuboresha Utendaji wa Seva ya Wavuti ya Nginx.
Kama kawaida, usisite kutufahamisha maswali au mawazo yoyote kuhusu mafunzo haya.