Rumah > Artikel > Operasi dan penyelenggaraan > Pengoptimuman prestasi keselamatan proksi terbalik Nginx
Dalam aplikasi rangkaian moden, Nginx, sebagai pelayan web popular dan pelayan proksi terbalik, telah menjadi pilihan pertama untuk banyak perusahaan dan tapak web. Nginx mempunyai kelebihan prestasi tinggi, kebolehpercayaan tinggi dan skalabiliti, dan ia adalah mudah untuk mengoptimumkan prestasi keselamatan Artikel ini akan memperkenalkan cara meningkatkan keselamatan aplikasi web melalui pengoptimuman prestasi keselamatan proksi terbalik Nginx.
HTTPS ialah protokol selamat yang menambahkan lapisan penyulitan SSL atau TLS pada protokol HTTP, yang boleh melindungi privasi dan privasi data dengan berkesan . Menggunakan HTTPS boleh menghalang serangan seperti serangan man-in-the-middle, kecurian data dan gangguan, jadi adalah disyorkan untuk mendayakan HTTPS dalam konfigurasi proksi terbalik Nginx.
Untuk mendayakan HTTPS, anda perlu memasang sijil SSL pada pelayan Nginx dan mengubah suai fail konfigurasi Nginx untuk menyokong HTTPS. Anda boleh menggunakan sijil CA anda sendiri atau membeli sijil SSL daripada organisasi pihak ketiga.
Sebagai contoh, berikut ialah contoh konfigurasi HTTPS Nginx yang mudah:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/ssl/cert.pem; ssl_certificate_key /path/to/ssl/key.pem; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Pengepala keselamatan HTTP ialah pengepala yang disertakan dalam respons HTTP , boleh digunakan untuk mengawal tingkah laku penyemak imbas dan meningkatkan keselamatan aplikasi web. Anda boleh meningkatkan keselamatan aplikasi web anda dengan menambahkan pengepala yang sepadan dalam konfigurasi proksi terbalik Nginx.
Sebagai contoh, anda boleh menambah pengepala keselamatan berikut:
Pengepala ini memberitahu penyemak imbas untuk mendayakan terbina dalam penapis skrip silang tapak ( XSS) yang membantu melindungi aplikasi web daripada serangan XSS.
add_header X-XSS-Protection "1; mode=block";
Pengepala ini memberitahu penyemak imbas sama ada untuk membenarkan membenamkan aplikasi web ke tapak lain. Dengan mengkonfigurasi pengepala ini, anda boleh menghalang serangan clickjacking.
add_header X-Frame-Options "SAMEORIGIN";
Pengepala ini memberitahu penyemak imbas sama ada untuk membenarkan menghidu jenis MIME. Dengan mengkonfigurasi pengepala ini, anda boleh menghalang serangan menghidu jenis MIME dan serangan XSS.
add_header X-Content-Type-Options "nosniff";
Mampatan Gzip ialah kaedah pemampatan yang biasa digunakan yang boleh mengurangkan saiz penghantaran data, dengan itu meningkatkan prestasi aplikasi web. Menghidupkan pemampatan gzip boleh mengurangkan masa muat halaman dengan ketara dan mengurangkan penggunaan lebar jalur rangkaian.
Anda boleh mendayakan pemampatan gzip dalam proksi terbalik Nginx dengan konfigurasi berikut:
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 1000; gzip_disable "MSIE [1-6].";
Untuk melindungi keselamatan aplikasi web anda , anda perlu mengehadkan alamat IP yang mengakses aplikasi web. Anda boleh menyekat alamat IP tertentu atau julat alamat IP, atau mengawal akses melalui senarai putih atau senarai hitam.
Sebagai contoh, berikut ialah contoh konfigurasi sekatan akses IP untuk proksi terbalik Nginx:
location / { allow 192.168.1.0/24; deny all; proxy_pass http://backend; proxy_set_header Host $host; }
Penolakan teragih bagi serangan perkhidmatan ( serangan DDoS) ialah serangan rangkaian biasa yang cuba menggantung perkhidmatan sasaran dengan menduduki jalur lebar rangkaian pelayan sasaran atau sumber sistem.
Untuk mengelakkan serangan DDoS, anda boleh menggunakan modul had kadar dan modul had sambungan dalam proksi terbalik Nginx.
Modul had laju boleh mengehadkan kelajuan akses pelanggan, dengan itu mengurangkan beban pada pelayan.
Modul had sambungan boleh mengehadkan bilangan sambungan serentak pelanggan, dengan itu menghalang terlalu banyak sambungan daripada menduduki sumber pelayan.
Sebagai contoh, berikut ialah contoh konfigurasi proksi terbalik Nginx yang menyokong pengehadan kadar dan pengehadan sambungan:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_conn_zone $binary_remote_addr zone=addr:10m; server { listen 80; limit_req zone=one burst=5; limit_conn addr 50; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Ringkasan
Proksi terbalik Nginx ialah pelayan web yang popular dan proksi terbalik pelayan, yang mempunyai kelebihan prestasi tinggi, kebolehpercayaan yang tinggi dan berskala. Keselamatan dan prestasi aplikasi web boleh dipertingkatkan dengan mengkonfigurasi langkah seperti HTTPS, pengepala keselamatan, pemampatan gzip, sekatan akses dan perlindungan DDoS.
Atas ialah kandungan terperinci Pengoptimuman prestasi keselamatan proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!