CGI의 정식 영어 이름은 Common Gateway Interface(Public Gateway Interface)로, Nginx와 동적 스크립트 프로그램 사이의 브리지입니다. Nginx는 FastCGI 인터페이스를 통해 FastCGI에 동적 요청을 보냅니다. request to 스크립트 인터프리터가 실행되고, 해석 및 실행 결과가 원본 소켓을 통해 Nginx로 반환되고, Nginx는 그 결과를 클라이언트에 전달합니다.
Nginx는 Tcp 프로토콜을 사용하여 소켓 파일 소켓을 통해 래퍼에 동적 요청을 보냅니다. 래퍼는 CGI 인터페이스를 통해 요청을 수락합니다. 이러한 방식으로 웹 서버와 인터프리터는 완전히 독립적으로 개발될 수 있으므로 인터프리터가 서버 인터페이스를 직접 호출하여 발생하는 오류, 충돌 및 보안 문제를 방지할 수 있습니다. 또한 Nginx는 정적 페이지 요청 처리와 동적 요청 전달에 집중하고, 스크립트 인터프리터는 다른 서버에 설치하여 서버에 가해지는 부담을 공유할 수 있습니다.
CGI는 PHP 프로그램용 패치로 개발되었습니다. PHP를 설치하려면 먼저 PHP가 의존하는 라이브러리를 설치한 다음 구성 매개변수 --enable-fpm --enable-cgi 및 기타 옵션을 컴파일할 때 CGI에 대한 지원을 추가하세요. . PHP 확장 모듈을 컴파일하려면 모듈이 컴파일될 때 PHP에서 phpize 도구를 사용하여 구성 파일을 생성해야 합니다. phpize를 실행할 때 구성 파일을 생성할 수 없는 이유는 autoconf 소프트웨어 패키지가 설치되지 않았기 때문입니다.
php-fpm 프로세스의 구성 파일은 /usr/local/php/etc/php-fpm.conf입니다. 이에 따라 php-fpm을 구성할 수 있습니다.
Nginx 구성은 fastcgi를 지원합니다.
location ~ \.php${ root html; fastcgi_pass unix:/tmp/fastcgi.soke //通过套接字文件和cgi建立联系,该文件在php-fpm.conf中设置 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME html$SCRIPT_FILE_NAME;设置参数 include fastcgi_params; //导入fastcgi参数配置文件,该文件在nginx安装时自动生成。 }