Mempercepat prestasi nginx dengan ngx_pagespeed pada centOS 7

Mempercepat prestasi nginx dengan ngx_pagespeed pada centOS 7

Nginx [enjin x] adalah perisian web percuma, silang platform, pelayan web yang kuat, dan perisian proksi terbalik yang ditulis dalam c. Ia juga merupakan pelayan proksi IMAP/POP3 dan TCP/UDP standard, dan boleh digunakan sebagai pengimbang beban.

Nginx adalah pelayan HTTP yang terkenal (setanding dengan pelayan HTTP Apache) yang menggerakkan banyak laman web di web; Ia popular untuk prestasi dan kestabilannya yang tinggi.

Terdapat pelbagai faktor penting yang perlu dipertimbangkan apabila anda ingin meningkatkan pengalaman pengguna di laman web anda, termasuk kelajuan tapak dan kelajuan halaman (juga dikenali sebagai masa beban halaman). Sekiranya laman web anda dikuasakan oleh nginx, maka anda boleh menggunakan ngx_pagespeed untuk tujuan ini.

Cadangan Baca: Pasang mod_pagespeed untuk meningkatkan prestasi pelayan Apache

Ngx_pagespeed adalah modul nginx sumber percuma dan terbuka yang digunakan untuk meningkatkan kelajuan tapak serta mengurangkan masa beban halaman. Ia mengurangkan masa yang diperlukan untuk pengguna melihat dan berinteraksi dengan kandungan laman web anda.

Ciri -ciri NGX_PagesPeed:

  • Sokongan untuk kawalan HTTPS dan URL.
  • Pengoptimuman Imej: Pelucutan Meta-Data, Saiz Semakan Dinamik, Penggabungan semula.
  • CSS & JavaScript Minification, Concatenation, Inlining, and Outlining.
  • Sumber kecil yang terbabas.
  • Menangguhkan gambar dan pemuatan javascript.
  • HTML Rewriting.
  • Lanjutan seumur hidup cache.
  • Membolehkan mengkonfigurasi untuk pelbagai pelayan dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan cara memasang Nginx dengan ngx_pagespeed dan menguji keseluruhan pemasangan RHEL/CENTOS 7.

Perhatian: Pengguna Debian dan Ubuntu dapat mengikuti panduan ini untuk memasang NGX_PagesPeed untuk meningkatkan prestasi nginx.

Langkah 1: Pasang nginx dari sumber

1. Untuk memasang Nginx dengan ngx_pagespeed Memerlukan anda untuk menyusunnya dari sumber. Mula -mula memasang semua pakej yang diperlukan untuk menyusun nginx dari sumber seperti ini.

# YUM Pasang Wget GCC CMake Unzip GCC-C ++ PCRE-Devel ZLIB-Devel atau # YUM Group Pasang "Alat Pembangunan" 
Pasang alat pembangunan di CentOS 7

2. Seterusnya, dapatkan fail sumber versi terkini Nginx (1.13.2 Pada masa penulisan ini) menggunakan arahan wget dan ekstrak bola tar yang dimuat turun seperti di bawah.

# mkdir ~/muat turun # cd ~/muat turun # wget -c https: // nginx.org/muat turun/nginx-1.13.2.tar.gz # tar -xzvf nginx -1.13.2.tar.Gz 
Muat turun fail sumber nginx

3. Seterusnya, muat turun fail sumber ngx_pagespeed dan fail termampat unzip.

# wget -c https: // github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stabil.zip # unzip v1.12.34.2-stabil.zip 
Muat turun ngx_pagespeed

4. Sekarang bergerak ke direktori ngx_pagespeed unzipped dan dapatkan perpustakaan pengoptimuman halaman untuk menyusun nginx seperti berikut.

# cd ngx_pagespeed-1.12.34.2 -stabil/ # wget -c https: // dl.Google.com/dl/halaman-kelajuan/psol/1.12.34.2-x64.tar.gz # tar -xvzf 1.12.34.2-x64.tar.Gz 
Muat turun perpustakaan pengoptimuman halaman

Langkah 2: Konfigurasikan dan Susun nginx dengan ngx_pagespeed

5. Sekarang masuk ke nginx-1.13.2 direktori, dan konfigurasikan sumber nginx dengan menjalankan arahan di bawah.

# cd ~/muat turun/nginx-1.13.2 # ./Konfigurasi --DD-Module = $ Laman Utama/Muat turun/NGX_PAGESPEED-1.12.34.2-stabil/--user = tiada siapa-kumpulan = tiada siapa --error-log-path =/var/log/nginx/ralat.log--http-log-path =/var/log/nginx/akses.log --pid-path =/var/run/nginx.pid $ ps_ngx_extra_flags 
Konfigurasikan nginx dengan ngx_pagespeed

6. Seterusnya, menyusun dan memasang Nginx seperti berikut.

# buat # buat pemasangan 
Menyusun nginx dengan ngx_pagespeed

7. Apabila proses pemasangan selesai, buat semua symlink yang diperlukan untuk nginx.

# ln -s/usr/local/nginx/conf//etc/nginx/ # ln -s/usr/local/nginx/sbin/nginx/usr/sbin/nginx 
Buat Nginx Symlinks

Langkah 3: Membuat fail unit nginx untuk SystemD

8. Seterusnya, sejak sistemd adalah di dalamnya sistem dalam Centos 7, anda perlu membuat fail unit nginx secara manual untuknya.

Fisrt, buat fail /lib/systemd/system/nginx.perkhidmatan, Kemudian ambil fail perkhidmatan sistemd nginx tampal konfigurasi fail unit ke dalam fail di bawah.

# vi/lib/systemd/system/nginx.perkhidmatan 

Perhatikan lokasi Pidfile dan juga Nginx Perduaan yang anda tetapkan semasa mengkonfigurasi dan menyusun nginx, anda akan menetapkannya dalam pembolehubah yang sesuai dalam fail unit seperti yang ditunjukkan di bawah:

[Unit] Keterangan = Nginx HTTP dan Server Proksi Reverse After = Syslog.rangkaian sasaran.Sasaran jauh-FS.Sasaran NSS-Lookup.sasaran [perkhidmatan] jenis = 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] wanty = multi -User.sasaran 
Fail unit perkhidmatan sistemd nginx

Simpan fail dan tutupnya.

9. Pada ketika ini, mulakan nginx perkhidmatan untuk masa yang sama dan membolehkannya bermula pada boot sistem dengan menjalankan arahan di bawah.

# Systemctl Mula Nginx # Systemctl Dayakan Nginx # Systemctl Status Nginx 
Mulakan dan aktifkan nginx

Langkah 4: Konfigurasikan Nginx dengan modul PagesPeed

10. Dengan Nginx dipasang, seterusnya, anda perlu membolehkan Ngx_pagespeed modul. Mulakan dengan membuat direktori di mana modul akan cache fail untuk laman web anda dan tetapkan keizinan yang sesuai pada direktori ini dengan arahan di bawah.

# mkdir -p /var /ngx_pagespeed_cache # chown -r tiada siapa: tiada siapa /var /ngx_pagespeed_cache 
Buat direktori cache nginx

11. Sekarang sudah tiba masanya untuk membolehkan Ngx_pagespeed modul, buka fail konfigurasi nginx dan tambahkan baris di bawah.

Penting: Sekiranya anda telah mengkonfigurasi mana -mana hos maya nginx di pelayan, tambahkan arahan halaman di atas ke setiap blok pelayan untuk membolehkan ngx_pagespeed di setiap laman web.

# vi/etc/nginx/nginx.Conf 

Tambah berikut Ngx_pagespeed baris konfigurasi dalam blok pelayan.

# Pagespeed Main Tetapan Pagespeed On; pagespeed filecachepath /var /ngx_pagespeed_cache; # Pastikan permintaan untuk sumber -sumber yang dioptimumkan di halaman pergi ke halaman # pengendali dan tiada tajuk luaran yang ditetapkan. Lokasi ~ "\.Pagespeed \.([A-Z] \.)?[a-z] 2 \.[^.] 10 \.[^.]+"add_header" "" "; lokasi ~"^/ngx_pagespeed_static/" lokasi ~"^/ngx_pagespeed_beacon " 

Berikut adalah contoh kerja fail konfigurasi nginx dengan Ngx_pagespeed didayakan dalam hos maya lalai.

Konfigurasi nginx dengan ngx_pagespeed
#user tiada siapa; worker_processes 1; #error_log log/ralat.log; #error_log log/ralat.notis log; #error_log log/ralat.maklumat log; #pid log/nginx.pid; peristiwa worker_connections 1024;  http termasuk mime.jenis; 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_forward_for"'; #Access_log log/akses.log utama; Sendfile pada; #TCP_NOPUSH ON; #keepalive_timeout 0; Keepalive_timeout 65; #gzip on; pelayan mendengar 80; server_name localhost; #charset koi8-r; #Access_log log/host.akses.log utama; # Pagespeed Main Tetapan Pagespeed On; pagespeed filecachepath /var /ngx_pagespeed_cache; # Pastikan permintaan untuk sumber -sumber yang dioptimumkan di halaman pergi ke halaman # pengendali dan tiada tajuk luaran yang ditetapkan. Lokasi ~ "\.Pagespeed \.([A-Z] \.)?[a-z] 2 \.[^.] 10 \.[^.]+"add_header" "" "; lokasi ~"^/ngx_pagespeed_static/" lokasi ~"^/ngx_pagespeed_beacon " lokasi / root html; Indeks indeks.Indeks HTML.htm;  #error_page 404 /404.html; # Redirect Halaman ralat pelayan ke halaman statik /50x.html # error_page 500 502 503 504 /50x.html; Lokasi = /50x.html root html;  # proksi skrip php ke Apache mendengar pada 127.0.0.1:80 # #location ~ \.php $  # proxy_pass http: // 127.0.0.1; # # lulus skrip php ke pelayan fastcgi mendengar pada 127.0.0.1: 9000 # #location ~ \.php $  # root html; # fastcgi_pass 127.0.0.1: 9000; # indeks fastcgi_index.PHP; # fastcgi_param script_filename /script $ fastcgi_script_name; # termasuk fastcgi_params; # # menafikan akses ke .fail htaccess, jika root dokumen Apache # bersetuju dengan nginx satu # #location ~ /\.ht  # menafikan semua; # # Satu lagi tuan rumah maya menggunakan campuran konfigurasi IP-, nama, dan berasaskan port # #Server  # Listen 8000; # Dengar Somename: 8080; # server_name somename alias yang lain.alias; # lokasi /  # root html; # indeks indeks.Indeks HTML.htm; # # # Https server # #server  # mendengar 443 ssl; # server_name localhost; # ssl_certificate cert.PEM; # ssl_certificate_key cert.kunci; # ssl_session_cache dikongsi: ssl: 1m; # ssl_session_timeout 5m; # ssl_ciphers tinggi:!Anull:!MD5; # SSL_PREFER_SERVER_CIPHERS ON; # lokasi /  # root html; # indeks indeks.Indeks HTML.htm; # # 

12. Selepas itu, pastikan fail konfigurasi nginx adalah ralat percuma dengan menjalankan arahan di bawah, anda akan melihat output di bawah jika semuanya baik.

# nginx -t 
Semak konfigurasi Nginx untuk kesilapan

13. Akhirnya, mulakan semula pelayan nginx untuk perubahan yang akan berkuat kuasa.

# Systemctl mulakan semula nginx 

Langkah 5: Menguji Nginx dengan NGX_PagesPeed

14. Untuk mengetahui sama ada Ngx_pagespeed kini berfungsi bersempena dengan Nginx, ia mesti muncul di X-PAGE-SPEED kepala.

# curl -i -p http: // localhost 
Ujian nginx dengan ngx_pagespeed

Sekiranya anda gagal melihat header di atas, kemudian kembali ke langkah 11 dan berhati-hati ikuti arahan untuk membolehkan NGX-Pagespeed dengan langkah-langkah berikutnya.

NGX-Pagespeed GitHub Repository: https: // github.com/pagespeed/ngx_pagespeed

Itu sahaja! Dalam tutorial ini, kami menunjukkan cara memasang dan mengkonfigurasi nginx dengan modul ngx_pagespeed untuk mengoptimumkan dan meningkatkan prestasi tapak dan mengurangkan masa beban halaman.

Untuk menjamin pelayan web nginx, baca artikel ini - panduan utama untuk menjamin, mengeras dan meningkatkan prestasi pelayan web nginx.

Seperti biasa, jangan ragu untuk memberitahu kami sebarang pertanyaan atau pemikiran mengenai tutorial ini.