Rumah  >  Artikel  >  hujung hadapan web  >  nginx plus nodejs untuk membina pelayan imej

nginx plus nodejs untuk membina pelayan imej

WBOY
WBOYasal
2023-05-17 10:22:07670semak imbas

Dengan perkembangan Internet, sumber media seperti gambar dan video digunakan dengan lebih meluas. Sebagai pengendali laman web, cara cepat dan stabil menyediakan sumber imej yang besar telah menjadi isu yang mesti dipertimbangkan. Di sini, kami memperkenalkan penyelesaian untuk membina pelayan imej menggunakan nginx dan Node.js untuk menyediakan perkhidmatan imej yang cekap, pantas dan boleh dipercayai.

1. Gambaran keseluruhan pelan

Komponen utama pelan adalah seperti berikut:

  • Gunakan nginx untuk menyediakan perkhidmatan fail statik, seperti gambar, video , dsb.;
  • Gunakan Node.js untuk memproses dan menyimpan imej
  • Gunakan pangkalan data dalam memori Redis untuk menyimpan imej.

Dalam penyelesaian ini, nginx menyediakan perkhidmatan fail statik, dan Node.js berfungsi sebagai pusat pemprosesan, bertanggungjawab untuk memproses penskalaan imej, pemangkasan, penanda air dan operasi lain. Pada masa yang sama, mekanisme caching Redis digunakan untuk mengurangkan bilangan kali Node.js kerap membaca imej dan meningkatkan kelajuan pemprosesan imej dan masa tindak balas.

2. Pelaksanaan penyelesaian

  1. Pasang nginx

Pasang nginx melalui apt-get:

rreee
  1. Pasang Nod. js dan npm

Pasang Node.js dan npm melalui nvm:

sudo apt-get update
sudo apt-get install nginx
  1. Pasang Redis

Pasang Redis melalui apt-get:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc
nvm install <node-version>
  1. Buat projek Node.js

Buat fail package.json dalam direktori akar projek dan tambah kandungan berikut:

rreee

Antaranya, kami menggunakan Rangka kerja Express mengendalikan permintaan HTTP, perpustakaan Sharp mengendalikan pemprosesan imej dan perpustakaan Redis mengendalikan cache imej.

  1. Tulis kod Node.js

Buat fail app.js dalam direktori akar projek dan tulis kod berikut:

sudo apt-get update
sudo apt-get install redis-server

Dalam kod ini , Kami mula-mula menyambung ke pelayan Redis menggunakan RedisClient. Untuk setiap permintaan, kami mula-mula menyemak sama ada imej itu wujud dalam cache Redis. Jika terdapat imej dalam cache, kami terus membalas permintaan dengan imej dalam cache jika tidak, kami menggunakan kaedah ubah saiz dan jpeg dalam pustaka Sharp untuk memproses imej, menukarnya ke dalam format Penampan dan menyimpannya; dalam cache Redis.

  1. Konfigurasikan nginx

Tambah kandungan berikut dalam fail konfigurasi nginx /etc/nginx/nginx.conf:

rreee

Dalam fail konfigurasi , kami menggunakan fungsi proksi terbalik nginx untuk memajukan permintaan imej kepada aplikasi Node.js untuk pemprosesan pasca, dan menggunakan Redis untuk caching imej. Pada masa yang sama, kami mengkonfigurasi cache proksi nginx dan menetapkan tempoh sah cache dan kunci cache. Ini menghalang runtuhan cache dan masalah penembusan cache.

3. Kesan penyelesaian

Melalui penyelesaian di atas, kami telah mencapai perkhidmatan gambar yang boleh dipercayai dan cekap. Kesan utamanya adalah seperti berikut:

  1. Mengurangkan beban pada pelayan imej dan meningkatkan kestabilan dan kebolehpercayaan tapak web.
  2. Menggunakan cache proksi nginx dan teknologi cache Redis mengurangkan masa pemprosesan dan penghantaran imej serta meningkatkan kelajuan tindak balas perkhidmatan imej.
  3. Gunakan aplikasi Node.js sebagai pusat pemprosesan perkhidmatan imej untuk memudahkan pemprosesan dan pengurusan imej.
  4. Dengan mengkonfigurasi proksi terbalik nginx dan cache Redis, masalah seperti runtuhan cache dan penembusan cache dapat dielakkan, memastikan kualiti dan ketersediaan perkhidmatan imej.

Ringkasnya, kami menggunakan penyelesaian yang menggabungkan nginx dan Node.js untuk membina pelayan imej yang cekap dan boleh dipercayai Sambil mencapai perkhidmatan imej berkualiti tinggi, kami juga menyediakan operator tapak web dengan Lebih banyak pilihan.

Atas ialah kandungan terperinci nginx plus nodejs untuk membina pelayan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn