경우에 따라 Nginx 서버의 특정 디렉토리에서 PHP 스크립트 실행을 비활성화 할 수 있습니다. Nginx의 프로필을 사용하면이를 쉽게 달성하여 웹 사이트의 보안을 향상시킬 수 있습니다. 이 기사는 특정 디렉토리에서 PHP 스크립트의 실행을 금지하기 위해 Nginx를 구성하는 방법을 자세히 설명합니다.
특정 디렉토리에서 Nginx에서 PHP 스크립트를 실행하는 것을 금지하려면 Nginx의 'Location'지침을 사용하여 지정된 디렉토리에 대한 액세스 제한을 설정할 수 있습니다. 구체적으로, 당신은 정규 표현식을 통해 디렉토리 경로와 일치 한 다음`deny all '지침을 통해 PHP 스크립트의 실행을 차단합니다. 구성의 기본 원칙은 다음과 같습니다.
먼저 웹 사이트를 구성하려면 Nginx 구성 파일에서 서버 블록을 작성해야합니다. 이 서버 블록에는 다른 디렉토리에 대한 규칙이 포함됩니다.
server {
listen 80;
server_name example.com;
# 나머지를 구성하십시오Nginx옵션
}
다음으로 PHP 실행을 금지하는 특정 디렉토리에 대한 규칙을 구성하십시오. Location Directive를 사용하면 특정 디렉토리 또는 파일 경로에 대한 액세스 제한을 추가 할 수 있습니다.
server {
listen 80;
server_name example.com;
# 다른 사람을 구성하십시오Nginx옵션
location ~ /(dir1|dir2)/.*\.php$ {
deny all;
}
}
위의 구성에서`location '지침을 사용하여`/dir1/`또는`/dir2/`로 시작하는 요청과`.php`로 끝납니다. ```````지침 "을 통해, 모든 일치하는 요청은 거부됩니다. 실제 요구에 따라 디렉토리 경로와 정규식을 조정할 수 있습니다.
다음은 특정 디렉토리에서 PHP 스크립트를 실행하여 NGINX를 비활성화하는 방법을 보여주는 완전한 구성 예입니다.
server {
listen 80;
server_name example.com;
root /path/to/website;
index index.html;
location ~ /(dir1|dir2)/.*\.php$ {
deny all;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
이 예에서 루트 디렉토리는`/path/to/website`로 지정되고 기본 색인 파일`index.html`가 설정됩니다. 'location'지침을 통해`/dir1/`및`/dir2/`디렉토리에서 PHP 스크립트의 실행을 금지합니다. 다른 요청의 경우 Nginx는 정적 파일을 제공하려고 시도하며 파일이 존재하지 않으면 404 오류가 반환됩니다.
Nginx의 위치 지침을 사용하여 특정 디렉토리에서 PHP 스크립트의 실행을 효과적으로 금지 할 수 있습니다. 이것은 웹 사이트 보안을 향상시키는 쉽고 효과적인 방법입니다. 이 유형의 구성을 수행 할 때는 PHP가 비활성화 된 디렉토리의 올바른 경로를 설정하고 필요에 따라 정규식을 조정하십시오. 구성이 완료되면 변경 사항이 적용되도록 Nginx를 다시로드하십시오.