Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Nginx untuk caching proksi terbalik permintaan HTTP

Cara menggunakan Nginx untuk caching proksi terbalik permintaan HTTP

王林
王林asal
2023-08-02 22:58:451015semak imbas

Cara menggunakan Nginx untuk caching proksi terbalik bagi permintaan HTTP

Nginx ialah perisian pelayan web sumber terbuka berprestasi tinggi Selain berfungsi sebagai pelayan web untuk mengendalikan permintaan sumber statik, Nginx juga boleh melakukan proksi terbalik untuk permintaan HTTP. Proksi songsang boleh membantu kami memajukan permintaan pelanggan ke berbilang pelayan belakang untuk diproses dan boleh meningkatkan kelajuan tindak balas melalui caching. Artikel ini akan memperkenalkan cara mengkonfigurasi cache proksi terbalik dalam Nginx.

  1. Pasang Nginx
    Mula-mula, kita perlu memasang pelayan Nginx. Dalam persekitaran Linux, ia boleh dipasang melalui pengurus pakej. Mengambil Debian/Ubuntu sebagai contoh, laksanakan arahan berikut:

    sudo apt update
    sudo apt install nginx
  2. Konfigurasi cache proksi terbalik
    Selepas pemasangan selesai, kita perlu mengedit fail konfigurasi Nginx untuk mengkonfigurasi cache proksi terbalik. Fail konfigurasi lalai terletak di /etc/nginx/nginx.conf. Buka fail dengan editor teks dan cari blok http{}. /etc/nginx/nginx.conf。使用文本编辑器打开该文件,找到http{}块。

http{}块中添加以下配置:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

其中,/path/to/cache是缓存路径,可以根据实际情况进行修改。levels=1:2表示缓存目录的层级。keys_zone=my_cache:10m表示为缓存分配10M的内存,用于存储缓存的元数据。max_size=10g表示缓存的最大大小为10G。inactive=60m表示缓存文件在60分钟没有被访问时会被认为是过期的。

然后,在server{}块内添加以下配置:

proxy_cache my_cache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 404 10m;
proxy_cache_use_stale error timeout updating http_500 http_503;

其中,proxy_cache my_cache表示启用名为my_cache的缓存。proxy_cache_valid用于配置不同状态码的缓存有效期时间,例如200和302状态码的请求缓存有效期为1小时。proxy_cache_use_stale用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。

  1. 配置反向代理
    在完成了缓存的配置后,我们需要配置反向代理。在server{}块内,添加以下配置:

    location / {
     proxy_pass http://backend_server;
     proxy_set_header Host $host;
     proxy_cache_bypass $http_cache_control;
     proxy_cache_key $uri$is_args$args;
    }

    其中,proxy_pass指定了后端服务器的地址。proxy_set_header用于设置代理请求中的头信息,这里是将请求的host头设置为当前主机。proxy_cache_bypass用于指定哪些请求不使用缓存,这里是根据请求头中的cache-control来决定。proxy_cache_key

  2. Tambah konfigurasi berikut dalam blok http{}:
  3. sudo systemctl restart nginx

    Antaranya, /path/to/cache ialah laluan cache dan boleh diubah suai mengikut keadaan sebenar. levels=1:2 menunjukkan tahap direktori cache. keys_zone=my_cache:10m bermaksud memperuntukkan 10M memori untuk cache untuk menyimpan metadata cache. max_size=10g menunjukkan bahawa saiz maksimum cache ialah 10G. inactive=60m bermakna fail cache akan dianggap tamat tempoh jika ia tidak diakses selama 60 minit.

    Kemudian, tambahkan konfigurasi berikut di dalam blok server{}:

    rrreee

    Di mana, proxy_cache my_cache bermaksud mendayakan cache bernama my_cache . proxy_cache_valid digunakan untuk mengkonfigurasi tempoh sah cache bagi kod status yang berbeza Contohnya, tempoh sah cache permintaan 200 dan 302 kod status ialah 1 jam. proxy_cache_use_stale digunakan untuk menentukan sama ada untuk menggunakan cache tamat tempoh sebagai respons apabila ralat atau tamat masa berlaku pada pelayan bahagian belakang.
    1. Konfigurasikan proksi terbalik
      Selepas melengkapkan konfigurasi cache, kami perlu mengkonfigurasi proksi terbalik. Dalam blok server{}, tambahkan konfigurasi berikut:

      rrreee

      Antaranya, proxy_pass menentukan alamat pelayan backend. proxy_set_header digunakan untuk menetapkan maklumat pengepala dalam permintaan proksi Di sini, pengepala host permintaan ditetapkan kepada hos semasa. proxy_cache_bypass digunakan untuk menentukan permintaan yang tidak menggunakan cache Ini ditentukan berdasarkan cache-control dalam pengepala permintaan. proxy_cache_key digunakan untuk menjana kunci cache, yang merupakan gabungan URI dan parameter yang diminta.

      🎜🎜🎜Mulakan semula Nginx dan uji🎜Selepas melengkapkan konfigurasi di atas, simpan dan keluar dari fail konfigurasi. Kemudian, mulakan semula perkhidmatan Nginx melalui arahan berikut: 🎜rrreee🎜 Seterusnya, hantar permintaan melalui penyemak imbas atau alat baris arahan untuk memerhatikan kerja cache Nginx. 🎜🎜🎜🎜Ringkasan🎜Melalui langkah di atas, kami berjaya mengkonfigurasi fungsi cache proksi terbalik Nginx. Dengan menggunakan caching, kelajuan tindak balas permintaan boleh dipertingkatkan dengan ketara dan beban pada pelayan bahagian belakang boleh dikurangkan. Pada masa yang sama, Nginx juga menyediakan pilihan konfigurasi fleksibel yang boleh dilaraskan dan dioptimumkan mengikut keperluan sebenar. 🎜🎜Saya harap artikel ini akan membantu anda memahami dan menggunakan fungsi caching proksi terbalik Nginx. Jika anda mempunyai sebarang soalan atau keraguan, sila tinggalkan mesej di ruangan komen dan saya akan cuba sedaya upaya untuk menjawabnya. 🎜

    Atas ialah kandungan terperinci Cara menggunakan Nginx untuk caching proksi terbalik permintaan HTTP. 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