Cara menggunakan Nginx untuk melaksanakan kawalan akses berdasarkan pengesahan pengguna

PHPz
Lepaskan: 2023-08-02 16:25:22
asal
1275 orang telah melayarinya

Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan pengesahan pengguna

Nginx ialah HTTP berprestasi tinggi dan pelayan proksi terbalik, yang digunakan secara meluas untuk membina aplikasi dan perkhidmatan web berskala. Selain prestasi cemerlangnya, Nginx juga menyediakan banyak ciri, salah satunya adalah kawalan akses berdasarkan pengesahan pengguna. Dalam artikel ini, kita akan belajar cara melaksanakan kawalan akses ini menggunakan Nginx dan memberikan beberapa contoh kod.

  1. Pasang Nginx

Mula-mula, kita perlu memasang Nginx. Anda boleh mendapatkan arahan pemasangan untuk sistem pengendalian anda di tapak web rasmi (https://nginx.org/). Selepas pemasangan selesai, pastikan Nginx telah berjaya dimulakan. Anda boleh menyemak status Nginx menggunakan arahan berikut:

sudo systemctl status nginx
Salin selepas log masuk
  1. Buat fail kata laluan pengguna

Nginx menggunakan fail kata laluan untuk menyimpan bukti kelayakan pengguna. Kita boleh menggunakan alat htpasswd untuk mencipta fail ini. Jika htpasswd tidak dipasang pada sistem anda, anda boleh memasangnya menggunakan arahan berikut:

sudo apt-get install apache2-utils
Salin selepas log masuk

Seterusnya, buat fail kata laluan menggunakan arahan htpasswd dan tambah beberapa pengguna. Sebagai contoh, kami akan mencipta fail kata laluan yang dipanggil .htpasswd dan menambah pengguna bernama pengguna. Taip arahan berikut dalam terminal:

sudo htpasswd -c /etc/nginx/.htpasswd user
Salin selepas log masuk

Arahan itu akan meminta anda untuk kata laluan pengguna anda. Ingat, setiap pengguna memerlukan kata laluan mereka sendiri.

  1. Konfigurasi Nginx

Kini kita perlu mengkonfigurasi Nginx untuk mendayakan kawalan akses berasaskan pengesahan pengguna. Kami mengubah hala permintaan daripada pengguna yang tidak dibenarkan ke halaman 401 Tidak dibenarkan. Buka fail konfigurasi Nginx dan buat perubahan berikut.

sudo nano /etc/nginx/sites-available/default
Salin selepas log masuk

Dalam blok pelayan, tambahkan kod berikut:

location / {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    try_files $uri $uri/ =404;
}
Salin selepas log masuk

Selepas menyimpan dan menutup fail, muat semula konfigurasi Nginx:

sudo systemctl reload nginx
Salin selepas log masuk
  1. Menguji kawalan akses

Sekarang, anda telah menyediakan kawalan akses berdasarkan pengesahan pengguna . Anda boleh menguji ini menggunakan mana-mana penyemak imbas yang menyokong Pengesahan Asas HTTP. Apabila anda cuba mengakses halaman yang dilindungi, penyemak imbas akan menggesa anda untuk mendapatkan kelayakan anda.

Jika anda menggunakan penyemak imbas Chrome, ia akan memaparkan tetingkap timbul yang meminta anda memasukkan nama pengguna dan kata laluan anda.

Jika anda menggunakan pelayar lain, ia mungkin memaparkan medan input kelayakan sebagai borang. Tidak kira pelayar mana yang anda gunakan, anda sepatutnya berjaya mengesahkan pengguna dan mengakses halaman yang dilindungi.

  1. Pilihan Konfigurasi Lanjutan

Nginx juga menyediakan beberapa pilihan konfigurasi lanjutan untuk kawalan akses yang lebih kompleks. Sebagai contoh, anda boleh mendayakan atau melumpuhkan pengesahan pengguna pada laluan URL yang ditentukan. Anda boleh menggunakan arahan akses had untuk mencapai ini. Berikut ialah contoh konfigurasi:

location /admin {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    allow 192.168.1.0/24;
    deny all;
}
Salin selepas log masuk

Konfigurasi ini hanya akan membenarkan alamat IP daripada subnet 192.168.1.0/24 untuk mengakses kandungan di bawah laluan /admin, manakala IP lain akan dinafikan akses.

Selain menggunakan pengesahan asas, Nginx juga menyokong penggunaan kaedah pengesahan lain seperti sijil SSL dan OAuth untuk melaksanakan kawalan akses.

Kesimpulan

Kawalan capaian berasaskan pengesahan pengguna boleh dilaksanakan dengan mudah menggunakan Nginx untuk memastikan hanya pengguna yang dibenarkan boleh mengakses kandungan yang dilindungi dalam aplikasi web. Dengan langkah di atas, anda boleh mula melindungi aplikasi web anda dan menghalang akses tanpa kebenaran.

Contoh Kod:

server {
    listen       80;
    server_name  example.com;

    location / {
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
        try_files $uri $uri/ =404;
    }
}
Salin selepas log masuk

Sila ambil perhatian bahawa contoh di atas hanya menunjukkan cara mengkonfigurasi Nginx untuk kawalan akses asas. Dalam situasi sebenar, anda mungkin perlu mengkonfigurasi pelarasan konfigurasi dan nyahpepijat berdasarkan keperluan khusus anda.

Di atas adalah pengenalan kepada cara menggunakan Nginx untuk melaksanakan kawalan akses berdasarkan pengesahan pengguna. Saya harap artikel ini dapat membantu anda memahami dan menggunakan fungsi berkuasa Nginx dalam kawalan akses.

Atas ialah kandungan terperinci Cara menggunakan Nginx untuk melaksanakan kawalan akses berdasarkan pengesahan pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!