Flýttu Nginx árangur með Ngx_Pagespeed á CentOS 7
Nginx [engine x] er ókeypis og opinn uppspretta, þvert á vettvang, öflugur vefþjónn og öfugur proxy-hugbúnaður skrifaður í C. Hann er einnig venjulegur IMAP/POP3 og TCP/UDP proxy-þjónn og hægt að nota hann sem hleðslu. jafnvægismaður.
Nginx er vel þekktur HTTP netþjónn (sambærilegur við Apache HTTP miðlara) sem knýr fjölmargar síður á vefnum; það er vinsælt fyrir mikla afköst og stöðugleika.
Það eru ýmsir mikilvægir þættir sem þarf að hafa í huga þegar þú vilt bæta notendaupplifun á síðunni þinni, þar á meðal síðuhraði og síðuhraða (einnig þekktur sem hleðslutími síðu). Ef síðan þín er knúin af Nginx, þá geturðu notað ngx_pagespeed í þessum tilgangi.
Ngx_pagespeed er ókeypis og opinn uppspretta Nginx eining sem notuð er til að auka hraða vefsvæða ásamt því að minnka hleðslutíma síðunnar. Það dregur verulega úr þeim tíma sem það tekur notendur að sjá og hafa samskipti við innihald síðunnar þinnar.
- Stuðningur við HTTPS og vefslóðastýringu.
- Fínstilling mynd: fjarlægja lýsigögn, kraftmikil stærðarbreyting, endurþjöppun.
- CSS og JavaScript minnkun, samtenging, innfelling og útlínur.
- Lítil auðlind.
- Fresta hleðslu myndar og JavaScript.
- Endurskrifun HTML.
- Líftímalenging skyndiminni.
- Leyfir stillingar fyrir marga netþjóna og marga aðra.
Í þessari kennslu munum við sýna hvernig á að setja upp Nginx með ngx_pagespeed og prófa alla uppsetninguna á RHEL/CentOS 7.
Athugið: Debian og Ubuntu notendur geta fylgst með þessari handbók til að setja upp Ngx_Pagespeed til að bæta Nginx árangur.
Skref 1: Settu upp Nginx frá Source
1. Til að setja upp Nginx með ngx_pagespeed þarf að setja það saman frá uppruna. Settu fyrst upp alla pakka sem þarf til að setja saman Nginx frá uppruna eins og þessum.
# yum install wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel OR # yum group install "Development Tools"
2. Næst skaltu fá upprunaskrár af nýjustu útgáfunni af Nginx (1.13.2 þegar þetta er skrifað) með því að nota wget skipunina og draga niður tjörukúluna eins og hér að neðan.
# 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. Næst skaltu hlaða niður ngx_pagespeed frumskránum og pakka niður þjöppuðum skrám.
# wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip # unzip v1.12.34.2-stable.zip
4. Farðu nú inn í óþjappaða ngx_pagespeed möppuna og fáðu PageSpeed fínstillingarsöfnin til að setja saman Nginx sem hér segir.
# 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
Skref 2: Stilltu og settu saman Nginx með Ngx_Pagespeed
5. Farðu nú inn í nginx-1.13.2 möppuna og stilltu Nginx upprunann með því að keyra skipanirnar hér að neðan.
# 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. Næst skaltu setja saman og setja upp Nginx eins og hér segir.
# make # make install
7. Þegar uppsetningarferlinu er lokið skaltu búa til alla nauðsynlega tákntengla fyrir Nginx.
# ln -s /usr/local/nginx/conf/ /etc/nginx/ # ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Skref 3: Að búa til Nginx Unit File fyrir SystemD
8. Næst, þar sem systemd er init kerfið í CentOS 7, þarftu að búa til Nginx einingaskrána handvirkt fyrir það.
Fyrst, búðu til skrána /lib/systemd/system/nginx.service, gríptu síðan NGINX systemd þjónustuskrána og límdu einingaskráarstillingarnar inn í skrána hér að neðan.
# vi /lib/systemd/system/nginx.service
Taktu eftir staðsetningu PIDFile og NGINX tvöfaldans sem þú stillir þegar þú stillir og settir saman Nginx, þú munt setja þær í viðeigandi breytur í einingaskránni eins og sýnt er hér að neðan:
[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
Vistaðu skrána og lokaðu henni.
9. Á þessum tímapunkti skaltu ræsa nginx þjónustuna í meðaltíma og gera henni kleift að byrja við ræsingu kerfisins með því að keyra skipanirnar hér að neðan.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
Skref 4: Stilltu Nginx með Pagespeed Module
10. Með Nginx uppsett, næst þarftu að virkja Ngx_pagespeed einingu. Byrjaðu á því að búa til möppu þar sem einingin mun vista skrárnar fyrir vefsíðuna þína og stilla viðeigandi heimildir á þessari möppu með skipunum hér að neðan.
# mkdir -p /var/ngx_pagespeed_cache # chown -R nobody:nobody /var/ngx_pagespeed_cache
11. Nú er kominn tími til að virkja Ngx_pagespeed einingu, opna Nginx stillingarskrána og bæta við línunum hér að neðan.
Mikilvægt: Ef þú hefur stillt einhvern nginx sýndargestgjafa á þjóninum skaltu bæta ofangreindum síðuhraðatilskipunum við hvern netþjónsblokk til að virkja Ngx_pagespeed á hverri síðu.
# vi /etc/nginx/nginx.conf
Bættu við eftirfarandi Ngx_pagespeed stillingarlínum innan netþjónsblokkarinnar.
# 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" { }
Eftirfarandi er vinnandi dæmi um Nginx stillingarskrána með Ngx_pagespeed virkt í sjálfgefna sýndarhýslinum.
#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. Gakktu úr skugga um að Nginx stillingarskráin sé villulaus með því að keyra skipunina hér að neðan, þú munt sjá úttakið fyrir neðan ef allt er í lagi.
# nginx -t
13. Að lokum skaltu endurræsa Nginx netþjóninn til að breytingarnar taki gildi.
# systemctl restart nginx
Skref 5: Prófaðu Nginx með Ngx_pagespeed
14. Til að vita hvort Ngx_pagespeed virkar núna í tengslum við Nginx, verður það að birtast í X-Page-Speed hausnum.
# curl -I -p http://localhost
Ef þú hefur ekki séð hausinn hér að ofan, farðu síðan aftur í skref 11 og fylgdu vandlega leiðbeiningunum til að virkja Ngx-síðuhraða með næstu skrefum.
Ngx-pagespeed Github geymsla: https://github.com/pagespeed/ngx_pagespeed
Það er allt! Í þessari kennslu sýndum við hvernig á að setja upp og stilla Nginx með Ngx_pagespeed mát til að fínstilla og bæta árangur vefsvæðis og draga úr hleðslutíma síðu.
Til að tryggja Nginx vefþjóninn, lestu þessa grein – The Ultimate Guide to Secure, Harden and Improve Performance of Nginx Web Server.
Eins og alltaf, ekki hika við að láta okkur vita um allar fyrirspurnir eða hugsanir varðandi þessa kennslu.