nginx를 설정하는 .conf파일에서 fastcgi_param이 뭔지 모른채로 사용했어서 fastcgi_param에 대해 알아보고자 한다.
먼저 .conf파일에서 include라는 명령어는 fastcgi_params라는 파일을 포함하겠다는 의미이다.
fastcgi_params라는 파일은 nginx의 설정 파일인 nginx.conf가 있는 폴더를 기준삼아 있다.
필자의 경우 nginx.conf파일은 /etc/nginx에 위치해 있었고, 여기에 fastcgi_params라는 파일이 위치해 있었다.
fastcgi_params파일을 vim 모드로 들어가보면,,
위와 같이 나와있음을 확인할 수 있다.
즉, include fastcgi_params의 의미는 여러 param들을 한 곳에서 관리하면 복잡해서 파일로 나눠서 관리하는 것임을 확인할 수 있었다.
이후, fastcgi_param의 의미는 어떤 의미를 갖는지 찾기 위해 nginx 홈페이지에서 아래 그림과 같은 부분을 찾았다.
즉, SCRIPT_FILENAME이라는 변수에 실제로 읽을 php파일의 경로를 작성해주는 것이고, 이를 nginx가 php-fpm에 전달해주는 것일까? 라고 생각해봤다.
실제로, php코드를 통해 확인해보자.
실제로, php 라이브러리에 이미
$_SERVER라는 Array에 연관배열로 ‘SCRIPT_FILENAME’이라는 Key가 정의되어 있었다.
php코드를 출력해보자.
이를 브라우저에 출력해보면, ‘SCRIPT_FILENAME’가 나와있고 값이 들어가있음을 확인할 수 있다.
그렇다면, fastcgi_params파일에 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;을 추가하고 기존의 명령어를 지우면 똑같이 작동할까? 확인해보자.
브라우저에 출력해 보면, 똑같이 사용할 수 있음을 확인할 수 있다.
Nginx의 설정들에 대해 이해하고 사용하게 되어 Nginx에 장애가 났을때 어떤 부분을 봐야할지 쉽게 이해할 수 있을 것 같다!

'Dev > Nginx' 카테고리의 다른 글
[Nginx] fastcgi_pass설정(TCP/IP기반의 소켓 통신, 유닉스 소켓 통신) (2) | 2023.03.09 |
---|