Kata Pengantar
Senario aplikasi: Mungkin laman web dalaman perlu diakses oleh pengguna luaran, dan pada masa yang sama, pelawat tidak boleh diberi kebenaran akaun tapak web, jadi sekatan dikenakan pada tahap nginx. Sebagai contoh, dalam projek penyumberan luar, pekerja dalaman mempunyai akaun untuk mengendalikan dokumen, manakala pekerja penyumberan luar tidak mempunyai akaun dalaman, tetapi mereka perlu dapat melihat dokumen Oleh itu, menetapkan pengesahan pengguna di peringkat nginx adalah pilihan terbaik dan paling mudah Dalam kebanyakan kes, majikan tidak akan Membuka akaun dengan hak akses asas untuk pekerja penyumberan luar.
Prasyarat untuk pengesahan pengguna di peringkat nginx: program penciptaan kata laluan yang sepadan diperlukan, seperti apache2-utils (debian, ubuntu) atau httpd-tools (rhel/centos/oracle linux), operasi berbeza Sistem perisian yang berbeza.
Buat fail kata laluan akaun
Gunakan arahan sudo htpasswd -c /etc/apache2/.htpasswd user1
untuk mencipta akaun pertama, kemudian tekan enter untuk memasukkan kata laluan. Perintah yang sama tidak mempunyai parameter -c untuk mencipta pengguna kedua dan kata laluan Parameter -c adalah untuk mencipta fail semula dalam perintah kedua dan seterusnya.
Sahkan bahawa fail dan maklumat akaun berjaya dihasilkan. Gunakan perintah cat /etc/apache2/.htpasswd untuk melihat kandungan fail tersebut. seperti: user1:$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
, dsb.
Konfigurasikan nginx untuk pengesahan pengguna asas http
Gunakan arahan auth_basic untuk menentukan nama kawasan yang dilindungi dipaparkan dalam Pada tetingkap timbul akaun dan kata laluan, gunakan perintah auth_basic_user_file untuk menetapkan laluan .htpasswd dengan maklumat akaun dan kata laluan. Sebagai contoh, konfigurasi:
location /api { auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; }
Selain itu, jika blok tidak mahu mewarisi keseluruhan sistem pengesahan, anda boleh mematikan auth_basic dalam blok, iaitu pengesahan pengguna dimatikan. Contohnya konfigurasi:
server { ... auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; location /public/ { auth_basic off; } }
Menggabungkan pengesahan dengan sekatan akses mengikut alamat ip
Pengesahan asas http boleh digabungkan dengan berkesan dengan sekatan akses mengikut alamat ip. Anda boleh melaksanakan sekurang-kurangnya dua senario:
Pengguna perlu disahkan dan mempunyai hak akses ip
Pengguna perlu disahkan atau mempunyai ip akses kebenaran Akses
1 Gunakan arahan benarkan dan tolak untuk membenarkan atau menyekat akses kepada IP yang ditentukan, contohnya, konfigurasikan:
location /api { #... deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; }
2. Pada alamat 192.168.1.2 Untuk rangkaian lain, hanya akses kepada 192.168.1.1/24 diberikan. Nota: benarkan dan tolak arahan akan digunakan dalam susunan yang ditentukan.
Gabungkan sekatan dengan arahan yang memuaskan melalui pengesahan ip dan http. Jika arahan ditetapkan kepada semua, akses diberikan apabila pelanggan memenuhi dua syarat ini. Jika arahan ditetapkan kepada mana-mana, akses diberikan jika pelanggan memenuhi sekurang-kurangnya satu syarat, contohnya konfigurasi:
location /api { #... satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; }
Perkara di atas boleh disusun menjadi contoh lengkap:
http { server { listen 192.168.1.23:8080; root /usr/share/nginx/html; location /api { api; satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; } } }
Kesan akhir adalah seperti yang ditunjukkan di bawah:
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi halaman pengesahan pengguna Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!