Có một vài cách để bảo vệ một thư mục với tên truy cập và mật khẩu, nhưng hôm nay tôi sẽ chỉ cho bạn cách để làm điều đó sử dụng xác thực http trên máy chủ web Nginx. Chúng tôi sẽ sử dụng cơ chế tương tự được sử dụng trên Apache, và đó là sử dụng một tập tin htpasswd. Hãy bắt đầu. Tạo một tập tin gọi là htpasswd Mã: htpasswd -bc /var/www/.htpasswd steve password Nếu bạn cần thêm một người dùng thêm: Mã: htpasswd -b /var/www/.htpasswd jack password Hai ví dụ với steve và jack là tên truy cập, và ‘password’ là thiết lập mật khẩu, bạn có thể thay đổi để phù hợp với nhu cầu của bạn. Quan trọng: lưu ý rằng tập tin htpasswd nên được đặt trên thư mục root pubic_html hoặc bên trong một thư mục truy cập non-public. Bạn có thể đặt giống như ví dụ ở /var/www/.htpasswd hoặc /home/jack/.htpasswd, đó là tùy thuộc vào bạn. Chỉnh sửa cấu hình Nginx để thêm mật khẩu bảo vệ thiết lập thư mục Đặt dòng này bên trong khối server {}: Mã: location ^~ /secret_directory/ { auth_basic "Restricted"; auth_basic_user_file /var/www/.htpasswd; location ~ .php$ { root /var/www/yoursite.com; try_files $uri =404; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } } Thay thế "secret_directory" với tên thật của thư mục bạn muốn bảo vệ. Tôi cũng đã dán ở đây cấu hình tôi sử dụng trên php-fpm, dựa trên socket, nó có thể khác so với bạn. Reload lại Nginx để áp dụng các thay đổi: Mã: /etc/init.d/nginx reload Kiểm tra các thư mục được bảo vệ bằng mật khẩu Tới http://www.yoursite.com/secret_directory/ và bạn sẽ thấy việc bảo vệ đang được thực hiện.