Trong quá trình phát triển web, có những lúc chúng ta sẽ cần phải giới hạn người dùng truy cập đến website của mình và để giới hạn chúng ta có thể yêu cầu người dùng xác thực qua tài khoản
và mật khẩu
.
Bài viết này sẽ hướng dẫn cho bạn các bước để cấu hình Basic Authentication bảo vệ server Nginx chạy trên môi trường CentOS và Ubuntu Server.
1. Cài đặt htpasswd
Tiến hành cài gói apache2-utils (Debian, Ubuntu) hoặc httpd-tools (CentOS)
Ubuntu, Debian:
sudo apt-get update sudo apt-get install apache2-utils
CentOS:
sudo yum install httpd-tools
2. Tạo Password File
Sau khi htpasswd được cài đặt, hãy tạo file mật khẩu bằng câu lệnh sau với flag -c nếu file “.htpasswd” chưa tồn tại:
sudo htpasswd -c /etc/nginx/.htpasswd username
Thay thế “username” với tên đăng nhập bạn mong muốn. Sẽ có prompt chờ bạn nhập thông tin cho user trên
Lưu ý: nếu đã có file /etc/nginx/.htpasswd rồi thì KHÔNG sử dụng flag -c
sudo htpasswd /etc/nginx/.htpasswd tomosia-admin
Nếu user tomosia-admin đã tồn tại thì lệnh trên sẽ cập nhật lại password
3. Cấu hình xác thực mật khẩu cho Nginx
Mở tệp cấu hình nginx của bạn, thường nó sẽ nằm ở đường dẫn /etc/nginx/nginx.conf hoặc cấu hình cho 1 site nhất định tại /etc/nginx/sites-available/example.com hoặc /etc/nginx/conf.d/example.com. Sau đó thêm dòng sau vào file cấu hình
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
Nếu muốn thiết lập basic auth cho toàn bộ website trên server thì cần thêm vào khối http
http {
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
Nếu muốn thiết lập cho một website hoặc domain nhất định cần thêm vào khối server tương ứng
server {
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
Nếu muốn thiết lập cho một location nhất định hãy thêm vào khối location
location /swagger-ui/ {
...
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
4. Restart Nginx
sudo service nginx reload #debian/ubuntu sudo systemctl restart nginx #redhat/centos
8 comments
Bài viết rất bổ ích!
Hay quá!
Cảm ơn bạn
Ra thêm nhiều bài viết nữa nhé
Bổ ích!
Hay
Tuyệt vời :))
bài viết này rất hữu ích :d