Weboldal keresés

Telepítse az Nginxet az Ngx_Pagespeed-del (Speed Optimization) Debian és Ubuntu rendszeren


Legutóbbi cikkünkben bemutattuk, hogyan lehet felgyorsítani az Nginx teljesítményét az Ngx_Pagespeed segítségével CentOS 7 rendszeren. Ebben az oktatóanyagban elmagyarázzuk, hogyan telepíthető az Nginx az ngx_pagespeed használatával Debian és Ubuntu rendszereken az Nginx webhelyek teljesítményének javítása érdekében.

Az Nginx [engine x] egy ingyenes, nyílt forráskódú, népszerű HTTP-szerver, amely számos webhelyet működtet az interneten: jól ismert nagy teljesítményéről és stabilitásáról. Fordított proxyként, általános levelezési és TCP/UDP proxyszerverként is működik, és emellett terheléselosztóként is telepíthető.

Az Ngx_pagespeed egy ingyenes és nyílt forráskódú Nginx modul, amely a webhelyek sebességének javítására és az oldalak betöltési idejének csökkentésére szolgál; drasztikusan lecsökkenti azt az időt, amely alatt a felhasználók megtekintik és interakcióba lépnek az Ön webhelyén található tartalommal.

Javasolt olvasmány: Telepítse a Mod_Pagespeed programot az Apache szerver teljesítményének javítása érdekében

Ngx_pagespeed jellemzők:

  • HTTPS támogatás URL-vezérléssel.
  • Képoptimalizálás: metaadatok eltávolítása, dinamikus átméretezés, újratömörítés.
  • CSS és JavaScript kicsinyítés, összefűzés, beillesztés és körvonalazás.
  • Kis erőforrás beépítés.
  • A kép és a JavaScript betöltésének elhalasztása.
  • HTML átírás.
  • A gyorsítótár élettartamának meghosszabbítása.
  • Lehetővé teszi több szerver és sok más konfigurálását.

1. lépés: Az Nginx telepítése a forrásból

1. Az Nginx ngx_pagespeed forrásból történő telepítéséhez a következő csomagokat kell telepíteni a rendszerre.

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

2. Ezután töltse le az Nginx legújabb verziójának forrásfájljait (az írás idején 1.13.2) a wget paranccsal, és csomagolja ki a fájlokat az alábbiak szerint.

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. Ezután szerezze be az ngx_pagespeed forrásfájlokat, és csomagolja ki a tömörített fájlt így.

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

4. Ezután lépjen a kicsomagolt ngx_pagespeed könyvtárba, és töltse le a PageSpeed optimalizálási könyvtárakat az Nginx lefordításához az alábbiak szerint.

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. lépés: Konfigurálja és fordítsa le az Nginxet az Ngx_Pagespeed segítségével

5. Ezután lépjen az nginx-1.13.2 könyvtárba, és konfigurálja az Nginx-forrást a következő parancsokkal.

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. Ezután fordítsa le és telepítse az Nginxet az alábbiak szerint.

make
sudo make install

7. A telepítési folyamat befejezése után futtassa az alábbi parancsokat az Nginxhez szükséges szimbolikus hivatkozások létrehozásához.

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

3. lépés: Nginx egységfájl létrehozása a SystemD számára

8. Itt manuálisan kell létrehoznia az Nginx egységfájlt, mivel a systemd az init rendszer a Debian és az Ubuntu rendszer újabb verzióin

Először hozza létre a /lib/systemd/system/nginx.service fájlt.


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

Ezután töltse le az NGINX systemd szolgáltatásfájlt, és illessze be az egységfájl konfigurációját a fájlba.

[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

Mentse el a fájlt és zárja be.

9. Most egyelőre indítsa el az nginx szolgáltatást, és engedélyezze a rendszerindításkor az alábbi parancsok használatával.

sudo systemctl start nginx
sudo systemctl enable nginx

Fontos: Az Nginx szolgáltatás elindítása után az alábbi képernyőképen látható hibaüzenet jelenhet meg.

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

A megoldáshoz nyissa meg az Nginx konfigurációs /etc/nginx/nginx.conf fájlját, és fűzze hozzá a következő sort.

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

Végül indítsa újra az nginx szolgáltatást.

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

4. lépés: Az Nginx konfigurálása a Pagespeed Module segítségével

10. Most, hogy az Nginx telepítve van és fut a rendszerén, engedélyeznie kell az Ngx_pagespeed modult. Először hozzon létre egy könyvtárat, ahol a modul gyorsítótárazza a webhely fájljait, és állítsa be a megfelelő engedélyeket ebben a könyvtárban az alábbiak szerint.

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

11. Az Ngx_pagespeed modul engedélyezéséhez nyissa meg az Nginx konfigurációs fájlját.

sudo vi /etc/nginx/nginx.conf

Adja hozzá a következő Ngx_pagespeed konfigurációs sorokat a szerverblokkon belül.

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

Megjegyzés: Ha bármilyen nginx virtuális gazdagépet telepített a kiszolgálón, adja hozzá a fenti oldalsebesség-irányelveket minden szerverblokkhoz, hogy az Ngx_pagespeed minden webhelyen engedélyezhető legyen.

Az alábbiakban egy működő példa látható az Nginx konfigurációs fájlra, amelyben az alapértelmezett virtuális gazdagépen engedélyezve van az Ngx_pagespeed.

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

Mentse és zárja be a fájlt.

12. Ezután ellenőrizze, hogy az Nginx konfigurációs fájl szintaxisa hibamentes-e az alábbi parancs futtatásával. Ha helyes, az alábbi kimenetet fogja látni:

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. Ezután indítsa újra az Nginx szervert a legutóbbi módosítások végrehajtásához.

sudo systemctl restart nginx

5. lépés: Az Nginx tesztelése az Ngx_pagespeed segítségével

14. Most az alábbi cURL paranccsal tesztelje, hogy az Ngx-pagespeed működik-e az Nginx-szel együtt.

curl -I -p http://localhost

Ha nem látja a fenti fejlécet, lépjen vissza a 10. lépéshez, és figyelmesen kövesse az utasításokat az Ngx-pagespeed engedélyezéséhez az egymást követő lépésekkel.

Ngx-pagespeed Github-tárház: https://github.com/pagespeed/ngx_pagespeed

Ha biztonságossá szeretné tenni az Nginx webszervert, akkor javasoljuk, hogy olvassa el ezt a hasznos oktatóanyagot: Az Ultimate Guide to Secure, Harden and Improve of Performance of Nginx.

Ez az! Ebben az oktatóanyagban elmagyaráztuk, hogyan telepíthető az Nginx az ngx_pagespeed használatával Debian és Ubuntu rendszeren. Ha kérdése van, küldje el nekünk az alábbi megjegyzés űrlapunk segítségével.