![Nginx PHP-FPM 기본 인증](https://rvso.com/image/568267/Nginx%20PHP-FPM%20%EA%B8%B0%EB%B3%B8%20%EC%9D%B8%EC%A6%9D.png)
nginx
에 php-fpm
설치 했습니다 Debian Squeeze
.
디렉토리 트리는 다음과 같습니다:
- /var/www/mysite
- index.php
- 비밀_폴더_1
- admin.php
- 정적.html
- 비밀_폴더_2
- admin.php
- 정적.html
- 영화
- img01.jpg
닫아야 secret_folder_1
하고 .secret_folder_2
basic_auth
이제 구성은 다음과 같습니다.
location ~ /secret_folder_1/.+\.php$
{
root /var/www/mysite/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/mysite$fastcgi_script_name;
include fastcgi_params;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
}
location ~ /secret_folder_1/.*
{
root /var/www/mysite/;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
}
에 대한 동일한 구성입니다 secret_folder_2
.
정상인가요? 제한된 폴더의 파일을 제공하는 첫 번째 위치 php
와 정적 파일을 제공하는 두 번째 위치를 의미합니다.
단순화할 수 있나요?
답변1
중첩된 위치가 더 나을 수 있습니다.
location /secret_folder_1 {
root /var/www/mysite/;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
}
$document_root
하드코딩된 대신 변수를 사용하여 SCRIPT_FILENAME 매개변수를 정의해야 합니다 /var/www/mysite/
.
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;