Rumah > Artikel > Operasi dan penyelenggaraan > Kawalan akses HTTP dan sekatan permintaan proksi terbalik dalam Nginx
Dengan mempopularkan Internet secara beransur-ansur, banyak aplikasi web telah digunakan secara meluas dalam persekitaran dan senario yang berbeza. Walau bagaimanapun, untuk aplikasi web, keselamatan dan prestasi adalah faktor penting. Artikel ini akan membincangkan cara menggunakan kawalan akses HTTP dan sekatan permintaan proksi terbalik dalam Nginx untuk meningkatkan keselamatan dan prestasi aplikasi web.
Kawalan Akses HTTP
Melalui kawalan akses HTTP, Nginx boleh menyekat akses kepada pelayan web, dengan itu meningkatkan keselamatan aplikasi web. Dalam Nginx, sekatan permintaan boleh dicapai menggunakan arahan membenarkan dan menolak. Arahan
allow boleh digunakan untuk menentukan alamat IP atau segmen rangkaian yang dibenarkan untuk mengakses pelayan. Sebagai contoh, untuk membenarkan akses kepada 192.168.0.1 dan 192.168.0.2, anda boleh menambah arahan berikut pada fail konfigurasi Nginx:
location / { allow 192.168.0.1; allow 192.168.0.2; deny all; # ... }
Arahan penafian boleh digunakan untuk menentukan alamat IP atau segmen rangkaian yang menafikan akses kepada pelayan. Contohnya, untuk menolak akses kepada 192.168.0.3, anda boleh menambah arahan berikut selepas arahan benarkan:
location / { allow 192.168.0.1; allow 192.168.0.2; deny 192.168.0.3; deny all; # ... }
Dalam contoh di atas, semua alamat IP lain akan dinafikan akses kepada pelayan.
Selain menggunakan arahan benarkan dan tolak, Nginx juga menyokong penggunaan pengesahan HTTP untuk mengawal akses kepada pelayan web. Ini boleh dicapai menggunakan arahan auth_basic dan auth_basic_user_file Nginx.
Arahan auth_basic digunakan untuk menentukan kawasan yang memerlukan pengesahan. Contohnya:
location /protected/ { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; # ... }
Untuk menggunakan pengesahan HTTP, anda mesti mencipta fail htpasswd dahulu. Fail ini boleh dibuat menggunakan arahan htpasswd, contohnya:
htpasswd -c /etc/nginx/.htpasswd alice
Dalam contoh di atas, pengguna bernama alice dicipta, yang akan digunakan untuk pengesahan. htpasswd juga akan menyediakan gesaan kata laluan untuk pengguna. Anda perlu memasukkan kata laluan pengguna alice dan mengesahkan kata laluan.
Had permintaan proksi songsang
Selain kawalan akses HTTP, Nginx juga boleh mengawal prestasi aplikasi web melalui had permintaan proksi terbalik. Pendikitan permintaan proksi terbalik bermakna Nginx boleh menetapkan had kekerapan permintaan untuk mengelakkan permintaan berniat jahat.
Menggunakan had permintaan proksi terbalik, anda boleh mengehadkan bilangan permintaan yang dibuat kepada setiap alamat IP luaran. Sebagai contoh, anda boleh menambah arahan berikut pada fail konfigurasi Nginx:
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
Arahan di atas akan mencipta zon terhad bernama satu, dengan had 10 permintaan sesaat. Sekatan ini hanya akan digunakan jika alamat IP peminta berada dalam segmen rangkaian seseorang.
Untuk menggunakan had kekerapan permintaan pada permintaan pada aplikasi, anda boleh menggunakan arahan limit_req. Contohnya:
location / { limit_req zone=one burst=5; # ... }
Arahan di atas akan mengehadkan bilangan permintaan dalam kawasan larangan zon satu, sambil membenarkan trafik serta-merta merentas julat pecah. Jika trafik serta-merta melebihi had pecah, kadar permintaan akan dikurangkan.
Ringkasan
Dalam pembangunan dan pengurusan aplikasi web, keselamatan dan prestasi adalah faktor penting. Dengan menggunakan kawalan akses HTTP dan sekatan permintaan proksi terbalik dalam Nginx, anda boleh meningkatkan keselamatan dan prestasi aplikasi web anda, sekali gus meningkatkan pengalaman pengguna. Nginx ialah pelayan web popular dan proksi terbalik yang kaya dengan ciri dan boleh disesuaikan serta boleh digunakan untuk memenuhi keperluan pelbagai aplikasi web.
Atas ialah kandungan terperinci Kawalan akses HTTP dan sekatan permintaan proksi terbalik dalam Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!