>  기사  >  nginx+php의 구성과 원리

nginx+php의 구성과 원리

无忌哥哥
无忌哥哥원래의
2018-06-27 15:17:541800검색

nginx+php를 웹서버 아키텍처 모델로 사용하여 요즘 널리 사용되고 있습니다. 그러나 실현해야 할 첫 번째 단계는 nginx가 PHP를 올바르게 호출하도록 만드는 방법입니다. nginx에서 php를 호출하는 것은 정적 파일을 호출하는 것만큼 간단하지 않기 때문에 php 스크립트를 동적으로 실행해야 합니다. 따라서 nginx.conf 파일 구성이 필요합니다. 초보자의 경우 이 단계에서는 일반적으로 온라인 정보 검색이 필요합니다. 일반 베테랑의 경우 이러한 구성이 필요한 이유를 이해하지 못하는 학생들이 많습니다. 이 글의 주요 내용은 nginx 서버에서 PHP 호출 메소드를 올바르게 구성하는 방법과 구성의 기본 원칙입니다.

1. nginx+php의 작동 원리:

우선, 현재 nginx+php의 주류 작동 원리를 간단히 설명하자면 다음과 같습니다.

1. nginx 네트워크 요청에 대한 각 요청을 관리합니다.

2. PHP의 경우 전체 네트워크 요청 프로세스에서 PHP가 CGI 프로그램 역할을 하기 때문에 이러한 요청된 PHP 프로그램을 관리하기 위해 php-fpm이라는 프로세스 관리 프로그램이 사용됩니다. nginx와 같은 php-fpm 프로그램은 포트에서 수신 대기해야 하며 마스터 및 작업자 프로세스가 있어야 합니다. 작업자 프로세스는 각 PHP 프로세스를 직접 관리합니다.

3. fastcgi 정보: fastcgi는 CGI 프로세스를 관리하는 프로세스 관리자입니다. fastcgi 기능을 구현하는 프로세스 관리자가 시장에 많이 나와 있으며 php-fpm도 그 중 하나입니다. 한 가지 더, php-fpm은 fast-cgi 프로세스 관리 서비스로서 포트를 수신합니다. 일반적으로 기본적으로 포트 9000을 수신하고 로컬 시스템을 모니터링합니다. 로컬 시스템이므로 일반적으로 netstat -nlpt|grep php-fpm 명령을 입력하면 다음이 표시됩니다.

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1057/php-fpm

여기서 127.0.0.1:9000 이 기계의 9000 포트를 듣는 것을 의미합니다.

4. fastcgi 구성 파일과 관련하여 현재 fastcgi 구성 파일은 일반적으로 nginx.conf와 동일한 디렉터리에 배치됩니다. 일반적으로 fastcgi.conf와 fastcgi_params의 두 가지 유형의 구성 파일이 있습니다. nginx 버전마다 구성 파일이 다릅니다. 이 두 구성 파일에는 매우 중요한 차이점이 있습니다. fastcgi_parames 파일에는 다음 구성이 없습니다.

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_parames 파일을 열고 추가할 수 있습니다. 위의 줄 또는 구성을 사용할 위치에 동적으로 추가할 수 있습니다. 이 구성을 적용하십시오.

5. PHP 요청을 처리해야 할 때 nginx의 작업자 프로세스는 처리를 위해 php-fpm의 작업자 프로세스에 요청을 넘겨줍니다. 즉, nginx는 실제로 처음에 php를 호출합니다. 즉, nginx는 php를 간접적으로 호출합니다.

위의 5가지 간단한 원리를 이해하고 나면 nginx에서 PHP 호출 방법을 구성하는 것이 쉬워집니다.

2. 구성 파일:

코드를 직접 붙여넣어 한 줄씩 설명합니다. 다음은 PHP 스크립트를 정상적으로 시작할 수 있는 가장 간단한 nginx 가상 호스트 구성입니다.

server {
    listen       8011;
    server_name  test.cn;
    location ~ \.php?.*$ {
        root           /share/test;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

1. 즉, 독립 서버를 나타냅니다.

2. Listen 8011: 8011 포트를 수신하는 서버를 나타냅니다. 3. 위치 ~ .php?.*${ }: 해당 URI와 일치할 수 있는 위치를 나타냅니다. URI 유형을 일치시키고 일치된 URI 요청에 대한 사용자 정의 논리 및 구성을 만듭니다. 여기 위치는 .php가 포함된 모든 URI 요청과 일치합니다(예: http://192.168.244.128:8011/test.php/asdasd http://192.168.244.128:8011/index.php 등).

4, 루트 /share/test: 리소스 루트 디렉터리를 요청하고 위치와 일치하는 uri에 /share/teset 폴더로 이동하여 동일한 이름을 가진 리소스를 찾으라고 지시합니다.

5. fastcgi_pass 127.0.0.1:9000: 이 줄의 시작 부분이 이 기사의 초점입니다. 이 코드 줄은 위치를 입력하는 URI 요청이 cgi 프로그램으로 간주되어 요청이 포트 9000으로 전송됨을 의미합니다. .php-fpm에 의해 처리됩니다.

6. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 이 구성 줄은 fastcgi 구성 줄을 동적으로 추가하고 구성 내용은 SCRIPT_FILENAME이며 관리 프로세스, cgi 스크립트 이름을 알려줍니다. 내 nginx에는 fastcgi_params 파일만 있고 fastcgi.conf 파일은 없기 때문에 php-fpm이 SCRIPT_FILENAME의 특정 값을 알 수 있도록 하려면 이 구성 줄을 동적으로 추가해야 합니다.

7. fastcgi_params 포함; fastcgi 구성 파일 소개

위는 nginx 시작 PHP 스크립트 구성의 가장 간단한 버전입니다. /share/test 디렉토리에 xx.php 파일을 생성하고 <를 입력하세요. ; ?php echo "hello world"; ?>저장한 후 브라우저에서 localhost:8011/xx.php를 방문하여 웹페이지에 hello world를 표시합니다.

3. 요약:

사실, PHP와 같은 CGI 스크립트 프로그램을 호출하려면 처음에 언급한 5가지 원칙을 이해하고 5~7줄의 구성 설명을 결합하면 됩니다. 이것이 왜 필요한지 명확하게 이해하십시오. 초보자의 경우 fastcgi 및 php-fpm cgi 프로그램으로 인해 혼란을 겪는 경우가 많습니다. 그들은 원칙을 자세히 조사하지 않고 무작위로 구성하고 온라인으로 실행합니다. 그래서 제가 여기에 쓴 내용이 독자들에게 조금이나마 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.