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.