احراز هویت را در Nginx تنظیم کنید

هنگام استفاده از Nginx، ممکن است بخواهید دسترسی به URL ها یا مسیرهای خاصی را محدود کنید. برای این کار، میتوانیم احراز هویت را تنظیم کنیم، و این چیزی است که امروز خواهیم دید.
فیچیر htpasswd
برای اینکه کاربران بتوانند وارد شوند، Nginx باید فایل را داشته باشد htpasswd
که شامل لیست نام کاربری و رمز عبور آنها با فرمت زیر خواهد بود:
user1:password1
user2:password2
...
نامهای کاربری به صورت متن ساده هستند، اما رمزهای عبور باید با آن رمزگذاری شوند BCrypt.
ساده ترین راه برای ایجاد این فایل و رمزگذاری رمزهای عبور این است که این کار را با ابزار کاربردی انجام دهید. htpasswd
.
نصب کننده htpasswd
این ابزار در بسته بندی موجود است apache2-utils
که می توانید با دستورات زیر نصب کنید:
sudo apt-get update
sudo apt-get install apache2-utils
از htpasswd استفاده کنید
دستور در قالب زیر است:
htpasswd [option] [chemin fichier] [nom utilisateur]
گزینه مفید برای دانستن این است -c
تا امکان ایجاد فایل فراهم شود.
سپس، تنها کاری که باید انجام دهید این است که هر کاربر/رمز عبور را تعریف کنید و کارتان تمام است!
مثال
# Créer le fichier et ajouter l'utilisateur toto
htpasswd -c /etc/nginx/htpasswd toto
# Ajouter un autre utilisateur
htpasswd /etc/nginx/htpasswd titi
پیکربندی Nginx
در پیکربندی Nginx خود، فقط باید اضافه کنید auth_basic
& auth_basic_user_file
مانند مثال زیر و Nginx شما آماده است!
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
امیدوارم این بتواند به تو کمکی کند! 🍺