Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan caching dinamik perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan caching dinamik perkhidmatan web?

Sep 06, 2023 pm 12:12 PM
docker nginx Caching dinamik

Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan caching dinamik perkhidmatan web?

Bagaimana untuk menggunakan pelayan proksi Nginx dalam Docker untuk melaksanakan caching dinamik perkhidmatan web?

Pengenalan

Dalam pembangunan web, caching dinamik adalah salah satu cara penting untuk meningkatkan prestasi aplikasi web dan kelajuan tindak balas. Dalam persekitaran kontena Docker, menggunakan Nginx sebagai pelayan proksi untuk melaksanakan caching dinamik boleh meningkatkan lagi skalabiliti dan fleksibiliti sistem. Artikel ini akan memperkenalkan cara menggunakan Nginx dalam bekas Docker untuk melaksanakan caching dinamik perkhidmatan web, dan menerangkannya secara terperinci dengan contoh kod.

1. Persediaan persekitaran

Sebelum kita mula, kita perlu menyediakan persekitaran berikut:

  1. Docker: Pastikan enjin Docker berjaya dipasang dan berjalan
  2. Nginx: Jalankan pelayan proksi Nginx dalam bekas Docker;
  3. Aplikasi web : Sediakan aplikasi web mudah untuk menguji kesan caching dinamik.

2. Cipta bekas Docker

Mula-mula, kita perlu mencipta bekas Docker dan menjalankan pelayan proksi Nginx di dalamnya. Jalankan arahan berikut untuk mencipta dan memulakan bekas Nginx:

docker run -d --name nginx-proxy -p 80:80 nginx
Salin selepas log masuk

Perintah ini akan memuat turun dan menjalankan versi terkini Nginx, dan memetakan port kontena 80 ke port 80 hos supaya kami boleh mengakses proksi Nginx melalui IP hos pelayan alamat.

Untuk mengesahkan sama ada bekas berjaya dibuat dan dijalankan, anda boleh melaksanakan arahan berikut:

docker ps
Salin selepas log masuk

Jika anda melihat status bekas sebagai "Naik", ini bermakna bekas telah berjaya dibuat.

3. Konfigurasikan pelayan proksi Nginx

Seterusnya, kita perlu mengkonfigurasi pelayan proksi Nginx untuk melaksanakan caching dinamik perkhidmatan web. Mula-mula, masukkan terminal bash bekas Nginx:

docker exec -it nginx-proxy bash
Salin selepas log masuk

Kemudian, laksanakan arahan berikut untuk mengedit fail konfigurasi Nginx:

cd /etc/nginx/conf.d/

vi default.conf
Salin selepas log masuk

Dalam fail default.conf, kita perlu mengkonfigurasi yang berikut:

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://web-app;
        proxy_cache my_cache;
        proxy_cache_valid 200 1d;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }
}
Salin selepas log masuk

Dalam perkara di atas konfigurasi, kami lulus Arahan proxy_pass memajukan permintaan klien ke pelayan huluan bernama "web-app". Pada masa yang sama, dalam blok lokasi, kami menggunakan arahan proxy_cache untuk mendayakan fungsi cache pelayan proksi, dan menggunakan arahan proxy_cache_valid untuk mengkonfigurasi tempoh sah cache. Di samping itu, arahan proxy_cache_use_stale digunakan untuk membenarkan pelayan proksi mengembalikan salinan data cache lama kepada klien semasa mengemas kini cache.

Selepas menyimpan dan keluar dari editor, mulakan semula perkhidmatan Nginx untuk menjadikan konfigurasi berkuat kuasa:

service nginx restart
Salin selepas log masuk

4. Konfigurasikan aplikasi Web

Dalam langkah sebelumnya, kami mengkonfigurasi pelayan proksi Nginx untuk melaksanakan caching dinamik. Seterusnya, kita perlu melakukan beberapa konfigurasi aplikasi web supaya ia boleh berkomunikasi dengan betul dengan pelayan proksi Nginx.

Dalam fail konfigurasi aplikasi web, kami perlu menambah kandungan berikut:

upstream web-app {
    server <web-app-container-ip>;
}
Salin selepas log masuk

Dalam konfigurasi di atas, kami menggunakan arahan huluan untuk mentakrifkan pelayan huluan bernama "web-app" dan nyatakan alamat IPnya sebagai < ;web -app-container-ip>. Alamat IP boleh diperolehi dengan melaksanakan perintah berikut:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <web-app-container-id>
Salin selepas log masuk

Ganti dengan alamat IP bekas sebenar dan simpan fail konfigurasi.

5. Uji cache dinamik

Selepas melengkapkan konfigurasi di atas, kami boleh menguji cache dinamik. Mula-mula, buka pelayar pada mesin hos dan masukkan "http://localhost" untuk mengakses aplikasi web. Pada ketika ini, pelayan proksi Nginx akan memajukan permintaan ke aplikasi web dan menyimpan data respons yang dikembalikan.

Kemudian, muat semula halaman penyemak imbas sekali lagi. Jika cache dinamik dikonfigurasikan secara normal, maka pelayan proksi Nginx akan terus mendapatkan data tindak balas daripada cache dan mengembalikannya kepada klien tanpa menghantar permintaan kepada aplikasi web sekali lagi, dengan itu meningkatkan prestasi dan kelajuan tindak balas sistem.

Contoh kod rujukan:

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://web-app;
        proxy_cache my_cache;
        proxy_cache_valid 200 1d;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }
}
Salin selepas log masuk

Ringkasan

Artikel ini memperkenalkan cara menggunakan pelayan proksi Nginx dalam Docker untuk melaksanakan caching dinamik perkhidmatan web. Dengan mengkonfigurasi arahan proxy_cache Nginx dan arahan proxy_cache_valid, kami boleh mendayakan dan mengkonfigurasi fungsi cache Nginx dengan mudah. Pada masa yang sama, melalui demonstrasi kod sampel, kami belajar cara mencipta bekas Nginx dalam persekitaran Docker, dan mengkonfigurasi serta mendayakan fungsi caching dinamik di dalamnya. Dengan cara ini, kami boleh meningkatkan prestasi dan kelajuan tindak balas aplikasi web dengan berkesan dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pelayan proksi Nginx di Docker untuk melaksanakan caching dinamik perkhidmatan web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Cara memulakan semula Docker Cara memulakan semula Docker Apr 15, 2025 pm 12:06 PM

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara Melihat Proses Docker Cara Melihat Proses Docker Apr 15, 2025 am 11:48 AM

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

See all articles