ഡെബിയനിലും ഉബുണ്ടുവിലും Ngx_Pagespeed (സ്പീഡ് ഒപ്റ്റിമൈസേഷൻ) ഉപയോഗിച്ച് Nginx ഇൻസ്റ്റാൾ ചെയ്യുക


ഞങ്ങളുടെ അവസാന ലേഖനത്തിൽ, CentOS 7-ൽ Ngx_Pagespeed ഉപയോഗിച്ച് Nginx പ്രകടനം എങ്ങനെ വേഗത്തിലാക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതന്നു. ഈ ട്യൂട്ടോറിയലിൽ, Nginx വെബ്uസൈറ്റുകളുടെ പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിന് Debian, Ubuntu സിസ്റ്റത്തിൽ ngx_pagespeed ഉപയോഗിച്ച് Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് ഞങ്ങൾ വിശദീകരിക്കും.

Nginx [എഞ്ചിൻ x] ഒരു സ്വതന്ത്രവും ഓപ്പൺ സോഴ്uസാണ്, വെബിലെ നിരവധി സൈറ്റുകളെ പവർ ചെയ്യുന്ന ജനപ്രിയ HTTP സെർവറാണ്: ഉയർന്ന പ്രകടനത്തിനും സ്ഥിരതയ്ക്കും പേരുകേട്ടതാണ്. ഇത് ഒരു റിവേഴ്uസ് പ്രോക്uസി, ജെനറിക് മെയിൽ, ടിസിപി/യുഡിപി പ്രോക്uസി സെർവർ എന്നിവയായും പ്രവർത്തിക്കുന്നു, കൂടാതെ ഒരു ലോഡ് ബാലൻസറായി വിന്യസിക്കാനും കഴിയും.

Ngx_pagespeed സൈറ്റുകളുടെ വേഗത മെച്ചപ്പെടുത്തുന്നതിനും പേജ് ലോഡ് സമയം കുറയ്ക്കുന്നതിനും ഉദ്ദേശിച്ചുള്ള ഒരു സ്വതന്ത്രവും തുറന്നതുമായ Nginx മൊഡ്യൂളാണ്; ഇത് ഉപയോക്താക്കൾക്ക് നിങ്ങളുടെ സൈറ്റിലെ ഉള്ളടക്കം കാണാനും സംവദിക്കാനും എടുക്കുന്ന സമയം ഗണ്യമായി കുറയ്ക്കുന്നു.

  • URL നിയന്ത്രണത്തോടുകൂടിയ HTTPS പിന്തുണ.
  • ഇമേജ് ഒപ്റ്റിമൈസേഷൻ: മെറ്റാ-ഡാറ്റ നീക്കം ചെയ്യൽ, ഡൈനാമിക് വലുപ്പം മാറ്റൽ, റീകംപ്രഷൻ.
  • സിഎസ്എസ്, ജാവാസ്ക്രിപ്റ്റ് മിനിഫിക്കേഷൻ, കോൺകറ്റനേഷൻ, ഇൻലൈനിംഗ്, ഔട്ട്ലൈനിംഗ്.
  • ചെറിയ റിസോഴ്സ് ഇൻലൈനിംഗ്.
  • ചിത്രവും JavaScript ലോഡിംഗും മാറ്റിവയ്ക്കുന്നു.
  • HTML റീറൈറ്റിംഗ്.
  • കാഷെ ആജീവനാന്ത വിപുലീകരണം.
  • ഒന്നിലധികം സെർവറുകൾക്കും മറ്റു പലതിനുമായി കോൺഫിഗർ ചെയ്യാൻ അനുവദിക്കുന്നു.

ഘട്ടം 1: ഉറവിടത്തിൽ നിന്ന് Nginx ഇൻസ്റ്റാളേഷൻ

1. ഉറവിടത്തിൽ നിന്ന് ngx_pagespeed ഉപയോഗിച്ച് Nginx ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് സിസ്റ്റത്തിൽ ഇനിപ്പറയുന്ന പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

$ sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

2. അടുത്തതായി, wget കമാൻഡ് ഉപയോഗിച്ച് Nginx-ന്റെ ഏറ്റവും പുതിയ പതിപ്പിന്റെ ഉറവിട ഫയലുകൾ (ഇത് എഴുതുന്ന സമയത്ത് 1.13.2) ഡൗൺലോഡ് ചെയ്യുക, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഫയലുകൾ എക്uസ്uട്രാക്uറ്റ് ചെയ്യുക.

$ 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. അടുത്തതായി, ngx_pagespeed സോഴ്സ് ഫയലുകൾ നേടുക, കംപ്രസ് ചെയ്ത ഫയൽ ഇതുപോലെ അൺസിപ്പ് ചെയ്യുക.

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

4. തുടർന്ന് അൺസിപ്പ് ചെയ്uത ngx_pagespeed ഡയറക്uടറിയിലേക്ക് പോയി Nginx കംപൈൽ ചെയ്യുന്നതിന് പേജ് സ്പീഡ് ഒപ്റ്റിമൈസേഷൻ ലൈബ്രറികൾ ഡൗൺലോഡ് ചെയ്യുക.

$ 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

ഘട്ടം 2: Ngx_Pagespeed ഉപയോഗിച്ച് Nginx കോൺഫിഗർ ചെയ്ത് കംപൈൽ ചെയ്യുക

5. അടുത്തതായി nginx-1.13.2 ഡയറക്ടറിയിലേക്ക് നീങ്ങുക, താഴെ പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് Nginx ഉറവിടം ക്രമീകരിക്കുക.

$ 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. അടുത്തതായി, ഇനിപ്പറയുന്ന രീതിയിൽ Nginx കംപൈൽ ചെയ്ത് ഇൻസ്റ്റാൾ ചെയ്യുക.

$ make
$ sudo make install

7. ഇൻസ്റ്റലേഷൻ പ്രക്രിയ പൂർത്തിയായ ശേഷം, Nginx-ന് ആവശ്യമായ സിംലിങ്കുകൾ സൃഷ്ടിക്കാൻ താഴെയുള്ള കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക.

$ sudo ln -s /usr/local/nginx/conf/ /etc/nginx
$ sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

ഘട്ടം 3: SystemD-യ്uക്കായി Nginx യൂണിറ്റ് ഫയൽ സൃഷ്uടിക്കുന്നു

8. ഡെബിയൻ, ഉബുണ്ടു സിസ്റ്റത്തിന്റെ പുതിയ പതിപ്പുകളിലെ init സിസ്റ്റം systemd ആയതിനാൽ ഇവിടെ നിങ്ങൾ Nginx യൂണിറ്റ് ഫയൽ സ്വമേധയാ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

Fisrt, ഫയൽ /lib/systemd/system/nginx.service സൃഷ്ടിക്കുക.

$ sudo vi /lib/systemd/system/nginx.service

തുടർന്ന് NGINX systemd സർവീസ് ഫയൽ ഡൗൺലോഡ് ചെയ്യുക, യൂണിറ്റ് ഫയൽ കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ഒട്ടിക്കുക.

[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

ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

9. ഇപ്പോൾ, തൽക്കാലം nginx സേവനം ആരംഭിക്കുക, താഴെയുള്ള കമാൻഡുകൾ ഉപയോഗിച്ച് സിസ്റ്റം ബൂട്ടിൽ ആരംഭിക്കാൻ ഇത് പ്രാപ്തമാക്കുക.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

പ്രധാനപ്പെട്ടത്: Nginx സേവനം ആരംഭിച്ചതിന് ശേഷം, ചുവടെയുള്ള സ്uക്രീൻ ഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ ഒരു പിശക് കണ്ടേക്കാം.

systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory 

അത് പരിഹരിക്കാൻ, Nginx കോൺഫിഗറേഷൻ /etc/nginx/nginx.conf ഫയൽ തുറന്ന് ഇനിപ്പറയുന്ന വരി കൂട്ടിച്ചേർക്കുക.

#pid  logs/nginx.pid;
to
pid  /run/nginx.pid;

ഒടുവിൽ nginx സേവനം വീണ്ടും പുനരാരംഭിക്കുക.

$ sudo systemctl daemon-reload
$ sudo systemctl start nginx
$ sudo systemctl status nginx

ഘട്ടം 4: പേജ്uസ്പീഡ് മൊഡ്യൂൾ ഉപയോഗിച്ച് Nginx കോൺഫിഗർ ചെയ്യുക

10. ഇപ്പോൾ നിങ്ങളുടെ സിസ്റ്റത്തിൽ Nginx ഇൻസ്റ്റാൾ ചെയ്യുകയും പ്രവർത്തിക്കുകയും ചെയ്യുന്നു, നിങ്ങൾ Ngx_pagespeed മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്. ആദ്യം നിങ്ങളുടെ വെബ്uസൈറ്റിനായി മൊഡ്യൂൾ ഫയലുകൾ കാഷെ ചെയ്യുന്ന ഒരു ഡയറക്uടറി സൃഷ്uടിക്കുകയും ഈ ഡയറക്uടറിയിൽ അനുയോജ്യമായ അനുമതികൾ ഇനിപ്പറയുന്ന രീതിയിൽ സജ്ജമാക്കുകയും ചെയ്യും.

$ sudo mkdir -p /var/ngx_pagespeed_cache
$ sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache

11. Ngx_pagespeed മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കാൻ, Nginx കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക.

$ sudo vi /etc/nginx/nginx.conf

സെർവർ ബ്ലോക്കിനുള്ളിൽ ഇനിപ്പറയുന്ന Ngx_pagespeed കോൺഫിഗറേഷൻ ലൈനുകൾ ചേർക്കുക.

# 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" { }

ശ്രദ്ധിക്കുക: നിങ്ങൾ സെർവറിൽ ഏതെങ്കിലും nginx വെർച്വൽ ഹോസ്റ്റുകൾ വിന്യസിച്ചിട്ടുണ്ടെങ്കിൽ, ഓരോ സൈറ്റിലും Ngx_pagespeed പ്രവർത്തനക്ഷമമാക്കാൻ ഓരോ സെർവർ ബ്ലോക്കിലേക്കും മുകളിലുള്ള പേജ് സ്പീഡ് നിർദ്ദേശങ്ങൾ ചേർക്കുക.

ഡിഫോൾട്ട് വെർച്വൽ ഹോസ്റ്റിൽ Ngx_pagespeed പ്രവർത്തനക്ഷമമാക്കിയ Nginx കോൺഫിഗറേഷൻ ഫയലിന്റെ പ്രവർത്തന ഉദാഹരണമാണ് ഇനിപ്പറയുന്നത്.

#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;
    #    }
    #}
}

ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക.

12. താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിച്ച് Nginx കോൺഫിഗറേഷൻ ഫയലിന്റെ വാക്യഘടന പിശക് രഹിതമാണോയെന്ന് പരിശോധിക്കുക, അത് ശരിയാണെങ്കിൽ, താഴെയുള്ള ഔട്ട്uപുട്ട് നിങ്ങൾ കാണും:

$ 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. സമീപകാല മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുത്തുന്നതിനായി Nginx സെർവർ പുനരാരംഭിക്കുക.

$ sudo systemctl restart nginx

ഘട്ടം 5: Ngx_pagespeed ഉപയോഗിച്ച് Nginx പരിശോധിക്കുന്നു

14. ഇപ്പോൾ താഴെയുള്ള cURL കമാൻഡ് ഉപയോഗിച്ച് Ngx-pagespeed ഇപ്പോൾ Nginx-മായി ചേർന്ന് പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക.

$ curl -I -p http://localhost

മുകളിലെ തലക്കെട്ട് കാണുന്നതിൽ നിങ്ങൾ പരാജയപ്പെട്ടാൽ, ഘട്ടം 10-ലേക്ക് തിരികെ പോയി തുടർച്ചയായ ഘട്ടങ്ങൾക്കൊപ്പം Ngx-pagespeed പ്രവർത്തനക്ഷമമാക്കാൻ നിർദ്ദേശങ്ങൾ ശ്രദ്ധാപൂർവ്വം പരിശോധിക്കുക.

Ngx-pagespeed Github ശേഖരം: https://github.com/pagespeed/ngx_pagespeed

നിങ്ങൾക്ക് Nginx വെബ് സെർവർ സുരക്ഷിതമാക്കണമെങ്കിൽ, ഈ ഉപയോഗപ്രദമായ ട്യൂട്ടോറിയലിലൂടെ വായിക്കാൻ ഞങ്ങൾ നിർദ്ദേശിക്കുന്നു: Nginx-ന്റെ പ്രകടനം സുരക്ഷിതമാക്കാനും കഠിനമാക്കാനും മെച്ചപ്പെടുത്താനുമുള്ള അന്തിമ ഗൈഡ്.

അത് തന്നെ! ഈ ട്യൂട്ടോറിയലിൽ, ഡെബിയനിലും ഉബുണ്ടുവിലും ngx_pagespeed ഉപയോഗിച്ച് Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചു. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ, ചുവടെയുള്ള ഞങ്ങളുടെ അഭിപ്രായ ഫോം ഉപയോഗിച്ച് ഞങ്ങൾക്ക് അയയ്ക്കുക.