Rumah >Operasi dan penyelenggaraan >Nginx >Caching HTTP dan pengoptimuman prestasi keselamatan dalam Nginx

Caching HTTP dan pengoptimuman prestasi keselamatan dalam Nginx

王林
王林asal
2023-06-10 11:00:201413semak imbas

Nginx ialah pelayan web berprestasi tinggi dan perisian pelayan proksi terbalik Prestasi tinggi dan kebolehpercayaannya adalah disebabkan oleh prestasi cache dan keselamatan HTTP yang sangat baik. Artikel ini akan memperkenalkan secara terperinci cara mengoptimumkan prestasi Nginx dari dua aspek: cache HTTP Nginx dan prestasi keselamatan.

1. Pengoptimuman cache HTTP

Caching HTTP ialah salah satu cara penting untuk pengoptimuman prestasi web. Ia boleh meningkatkan kelajuan tindak balas dan pengalaman pengguna aplikasi web. Dalam Nginx, kami boleh meningkatkan prestasi laman web dengan mengkonfigurasi cache HTTP.

  1. Caching sumber statik

Sumber statik termasuk CSS, JavaScript, imej, dll. Kandungan sumber ini selalunya tidak kerap berubah, jadi ia boleh dicache untuk mengurangkan interaksi pelanggan antara pelayan. Dalam Nginx, kita boleh menggunakan arahan tamat tempoh untuk mengawal masa tamat tempoh cache. Contohnya:

location /static/ {
    expires 30d;
}

bermaksud sumber statik dalam direktori /static/ akan tamat tempoh selepas 30 hari.

  1. Caching halaman dinamik

Kandungan halaman dinamik boleh dijana secara dinamik berdasarkan parameter permintaan, kuki, dsb., jadi ia tidak boleh dicache terus pada klien seperti sumber statik. Tetapi kita boleh cache halaman dinamik pada bahagian pelayan Apabila terdapat permintaan yang sama pada masa akan datang, hasil cache akan dikembalikan terus untuk mengelakkan penjanaan semula halaman. Dalam Nginx, kita boleh menggunakan arahan proxy_cache untuk mengkonfigurasi cache. Contohnya:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
    }
}

Di sini kami menyediakan kawasan cache bernama my_cache dan menyimpan hasil cache dalam direktori /var/cache/nginx. Kemudian konfigurasikan arahan proxy_cache di lokasi untuk mendayakan caching.

  1. Gunakan mekanisme rundingan cache

Mekanisme rundingan cache bermakna apabila meminta sumber, pelanggan mula-mula menghantar syarat Jika-Diubahsuai-Sejak atau Jika-Tiada-Padanan Apabila meminta kepada pelayan, jika sumber cache tidak berubah, pelayan mengembalikan kod status 304 Not Modified, dan pelanggan boleh terus menggunakan sumber cache, sekali gus mengurangkan lebar jalur dan masa tindak balas. Dalam Nginx, kita boleh menggunakan arahan proxy_cache_revalidate untuk mendayakan mekanisme rundingan cache. Contohnya:

location / {
    proxy_cache my_cache;
    proxy_cache_revalidate on;
    proxy_pass http://backend;
}

Di sini kita hanya perlu menambah arahan proxy_cache_revalidate ke lokasi.

2. Pengoptimuman prestasi keselamatan

Pengoptimuman prestasi keselamatan merujuk kepada meningkatkan prestasi aplikasi sebaik mungkin sambil memastikan keselamatan aplikasi web. Sebagai pelayan web berprestasi tinggi dan perisian pelayan proksi terbalik, Nginx bukan sahaja mesti memastikan prestasi tinggi aplikasi, tetapi juga memastikan keselamatan aplikasi.

  1. komunikasi disulitkan HTTPS

HTTPS ialah lanjutan protokol HTTP dan menggunakan protokol SSL/TLS untuk menyulitkan dan menyahsulit data untuk mencapai penghantaran data yang selamat. Dalam Nginx, kita boleh menggunakan arahan ssl_certificate dan ssl_certificate_key untuk mengkonfigurasi sijil SSL dan kunci peribadi. Contohnya:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        ...
    }
}
  1. HTTP Defense Attack

Kaedah serangan biasa dalam aplikasi web termasuk suntikan SQL, skrip silang tapak (XSS) dan pemalsuan permintaan merentas tapak ( CSRF) tunggu. Dalam Nginx, kita boleh menggunakan modul untuk mempertahankan diri daripada serangan ini.

(1) Suntikan SQL

Suntikan SQL bermakna penyerang memintas mekanisme pengesahan dan kebenaran aplikasi dengan membina pernyataan SQL khas, atau secara langsung melaksanakan pernyataan SQL yang berniat jahat, dengan itu Menyebabkan kebocoran data dan rasuah. Dalam Nginx, kita boleh menggunakan modul HttpSqlInjectionModule untuk mempertahankan diri daripada suntikan SQL. Contohnya:

location / {
    sql_injection on;
    ...
}

(2) Serangan XSS

Serangan XSS bermaksud penyerang menyuntik skrip hasad ke dalam halaman web untuk mendapatkan maklumat sensitif pengguna atau mengawal penyemak imbas pengguna. Dalam Nginx, kita boleh menggunakan modul HttpXssModule untuk mempertahankan diri daripada serangan XSS. Contohnya:

location / {
    xss on;
    ...
}

(3) Serangan CSRF

Serangan CSRF merujuk kepada penyerang yang menyamar sebagai pengguna untuk melakukan operasi haram dalam aplikasi web yang dipercayai, dengan itu menyebabkan kerosakan. Dalam Nginx, kita boleh menggunakan modul HttpCsrfModule untuk mempertahankan diri daripada serangan CSRF. Contohnya:

location / {
    csrf on;
    ...
}

Secara ringkasnya, artikel ini memperkenalkan secara terperinci cara mengoptimumkan prestasi Nginx daripada aspek cache HTTP Nginx dan prestasi keselamatan. Dengan menggunakan cache HTTP dengan betul, kami boleh meningkatkan kelajuan tindak balas dan pengalaman pengguna aplikasi dengan menggunakan sijil dan modul SSL, kami boleh memastikan keselamatan aplikasi dan mempertahankan daripada pelbagai serangan.

Atas ialah kandungan terperinci Caching HTTP dan pengoptimuman prestasi keselamatan dalam Nginx. 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