Rumah Operasi dan penyelenggaraan Nginx Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan peranan pengguna

Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan peranan pengguna

Aug 04, 2023 pm 02:36 PM
nginx kawalan capaian peranan pengguna

Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan peranan pengguna

Pengenalan:
Dalam aplikasi rangkaian moden, kawalan akses ialah keperluan keselamatan yang sangat penting. Banyak aplikasi memerlukan kawalan peranan dan kebenaran ke atas akses pengguna untuk memastikan pengguna yang berbeza hanya boleh mengakses kandungan yang mereka mempunyai kebenaran. Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang bukan sahaja boleh mengendalikan perkhidmatan fail statik, tetapi juga melaksanakan kawalan kebenaran asas melalui beberapa ciri. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan peranan pengguna dan memberikan contoh kod.

1. Konfigurasi asas Nginx
Pertama, kita perlu menetapkan maklumat asas dan peraturan kawalan akses dalam fail konfigurasi Nginx. Buka fail konfigurasi Nginx (biasanya /etc/nginx/nginx.conf), cari blok http, dan tambah kandungan berikut di dalamnya:

http {
    ...
    # 用户角色配置文件路径
    include /etc/nginx/user_roles.conf;

    # 默认拒绝访问
    location / {
        deny all;
    }

    # 静态文件服务
    location /static/ {
        alias /path/to/static/files/;
    }

    # 动态请求代理
    location /dynamic/ {
        proxy_pass http://localhost:8000;
        # 其他proxy相关配置
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, kami menetapkan peraturan penafian akses lalai dan mengkonfigurasi Fail statik penyampaian dan proksi permintaan dinamik. Seterusnya, kami mencipta fail user_roles.conf khusus untuk konfigurasi peranan pengguna Cipta fail dalam direktori /etc/nginx/ dan tambah kandungan berikut:

user john: editor;
user alice: admin;
Salin selepas log masuk

Dalam fail konfigurasi ini, kami mentakrifkan dua pengguna john dan alice, dan mereka. peranan yang sepadan. Peranan ini akan digunakan untuk keputusan kawalan akses.

2. Kawalan akses berdasarkan peranan pengguna
Nginx menyediakan beberapa pembolehubah dan arahan yang boleh digunakan untuk mengawal akses berdasarkan peranan pengguna.

  1. Gunakan pembolehubah untuk kawalan akses
    Nginx menyediakan pembolehubah $remote_user, yang mengandungi nama pengguna pengguna (diperolehi melalui pengesahan asas HTTP). Kita boleh melaksanakan kawalan capaian berdasarkan peranan pengguna dengan menilai nilai pembolehubah ini. Sebagai contoh, kita boleh menggunakan arahan if untuk melaksanakan peraturan kawalan akses berikut:
location /admin/ {
    if ($remote_user != "alice") {
        return 403;
    }
    # 其他配置指令
}
Salin selepas log masuk

Dalam contoh ini, jika nama pengguna pengguna bukan alice, Nginx akan mengembalikan halaman ralat 403 dan menafikan akses kepada kandungan di bawah /admin / laluan.

  1. Gunakan skrip Lua untuk kawalan akses
    Nginx juga menyokong pembenaman skrip Lua untuk pertimbangan kawalan akses yang lebih kompleks. Kita boleh menulis skrip Lua untuk membaca fail user_roles.conf dan melaksanakan kawalan akses berdasarkan peranan pengguna. Berikut ialah contoh skrip Lua:
location /editor/ {
    access_by_lua_block {
        local roles_file = "/etc/nginx/user_roles.conf"
        local file = io.open(roles_file, "r")
        local roles = file:read("*a")
        file:close()
        
        local current_user = ngx.var.remote_user
        local role = string.match(roles, current_user .. ": (%a+);")
        
        if role ~= "editor" then
            ngx.exit(ngx.HTTP_FORBIDDEN)
        end
    }
    # 其他配置指令
}
Salin selepas log masuk

Dalam contoh ini, kami membaca fail user_roles.conf dan memadankan peranan pengguna semasa menggunakan ungkapan biasa. Jika peranan pengguna semasa bukan editor, Nginx akan mengembalikan halaman ralat 403 dan menafikan akses kepada kandungan di bawah laluan /editor/.

Kesimpulan:
Melalui konfigurasi Nginx dan beberapa ciri, kami boleh melaksanakan kawalan akses berdasarkan peranan pengguna. Artikel ini menyediakan contoh kod asas untuk rujukan dan kegunaan pembaca. Sudah tentu, ini hanyalah kaedah pelaksanaan asas Dalam aplikasi sebenar, langkah keselamatan lain mungkin perlu digabungkan, seperti sijil SSL dan tembok api, untuk memastikan keselamatan sistem.

Rujukan:

  1. Dokumentasi Nginx: https://nginx.org/en/docs/
  2. OpenResty Dokumentasi Modul Nginx Lua: https://github.com/openresty/lua-nginx-module

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

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memeriksa sama ada nginx dimulakan Cara memeriksa sama ada nginx dimulakan Apr 14, 2025 pm 01:03 PM

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Bagaimana untuk memeriksa sama ada Nginx dimulakan? Bagaimana untuk memeriksa sama ada Nginx dimulakan? Apr 14, 2025 pm 12:48 PM

Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.

Cara Mengkonfigurasi Nginx di Windows Cara Mengkonfigurasi Nginx di Windows Apr 14, 2025 pm 12:57 PM

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Cara memulakan nginx di linux Cara memulakan nginx di linux Apr 14, 2025 pm 12:51 PM

Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.

Cara memulakan pelayan nginx Cara memulakan pelayan nginx Apr 14, 2025 pm 12:27 PM

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Cara menyelesaikan ralat nginx403 Cara menyelesaikan ralat nginx403 Apr 14, 2025 pm 12:54 PM

Pelayan tidak mempunyai kebenaran untuk mengakses sumber yang diminta, mengakibatkan ralat NGINX 403. Penyelesaian termasuk: Periksa keizinan fail. Semak konfigurasi .htaccess. Semak konfigurasi Nginx. Konfigurasikan keizinan Selinux. Semak peraturan firewall. Menyelesaikan masalah lain seperti masalah penyemak imbas, kegagalan pelayan, atau kesilapan lain yang mungkin.

Cara menyelesaikan masalah domain nginx Cara menyelesaikan masalah domain nginx Apr 14, 2025 am 10:15 AM

Terdapat dua cara untuk menyelesaikan masalah silang domain Nginx: Ubah suai tajuk tindak balas silang domain: Tambah arahan untuk membenarkan permintaan lintas domain, nyatakan kaedah dan tajuk yang dibenarkan, dan tetapkan masa cache. Gunakan modul CORS: Dayakan modul dan konfigurasikan peraturan CORS untuk membolehkan permintaan, kaedah, tajuk, dan masa cache domain.

Cara menyelesaikan ralat nginx304 Cara menyelesaikan ralat nginx304 Apr 14, 2025 pm 12:45 PM

Jawab kepada Soalan: 304 Tidak diubahsuai ralat menunjukkan bahawa penyemak imbas telah cache versi sumber terkini permintaan klien. Penyelesaian: 1. Kosongkan cache penyemak imbas; 2. Lumpuhkan cache penyemak imbas; 3. Konfigurasi nginx untuk membolehkan cache pelanggan; 4. Periksa keizinan fail; 5. Semak fail hash; 6. Lumpuhkan CDN atau cache proksi terbalik; 7. Mulakan semula nginx.

See all articles