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.
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
/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
用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。
配置反向代理
在完成了缓存的配置后,我们需要配置反向代理。在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
http{}
: 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.
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. Konfigurasikan proksi terbalik
Selepas melengkapkan konfigurasi cache, kami perlu mengkonfigurasi proksi terbalik. Dalam blok server{}
, tambahkan konfigurasi berikut:
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.
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!