Đặt mật khẩu truy cập vào thư mục trong Nginx

Giả sử bạn đang sử dụng Nginx trên máy chủ web server và bạn có một website đang chạy ở địa chỉ: http://domain.com

Bây giờ bạn muốn khi người dùng truy cập vào thư mục /test thông qua địa chỉ http//domain.com/test thì sẽ phải xác thực bằng cách điền vào username/password do bạn tạo ra.

Để thực hiện việc này, bạn cần làm các bước như sau:

  • Cài đặt Apache Tools
  • Tạo ra tài khoản xác thực
  • Cập nhật cấu hình trong Nginx

1. Cài đặt Apache Tools.

Bạn cần cài đặt gói apache2-utils được dùng để tạo ra tài khoản xác thực trong nginx. Trên command line, chạy câu lệnh sau để cài đặt:


sudo apt-get install apache2-utils

2. Tạo ra tài khoản xác thực

Bạn sẽ tạo ra mật khẩu kết hợp với username mà bạn chỉ định và sau cùng được lưu trong một file. Chạy câu lệnh sau để tạo ra mật khẩu, khi đó bạn sẽ được yêu cầu nhập vào mật khẩu cho tài khoản:


sudo htpasswd -c /etc/nginx/.htpasswd admin

Trong đó:

– admin là username bạn muốn đặt
– /etc/nginx/.htpasswd là file lưu trữ mật khẩu

Sau khi hoàn thành, bạn có thể xem lại nội dung của file lưu tài khoản bách cách gõ lệnh:


cat /etc/nginx/.htpasswd

3. Cập nhật cấu hình trong Nginx

Bây giờ, bạn cần cập nhật cấu hình trong Nginx để yêu cầu xác thực qua mật khẩu, bạn hãy mở file cấu hình Nginx cho website của bạn và cập nhật nội dung như sau:


location / {
....
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
}

Sau khi thêm vào cấu hình 2 dòng như trên, bạn lưu lại và khởi động lại Nginx để cấu hình được kích hoạt:


sudo service nginx reload

Ngay bây giờ, khi bạn truy cập vào đường dẫn website, bạn sẽ được yêu cầu nhập vào tài khoản xác thực. Nếu bạn nhập đúng username và password, bạn sẽ truy cập được.

Chúc các bạn thành công.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *