>  기사  >  백엔드 개발  >  Nginx+Php-fpm의 작동 원리에 대한 자세한 설명

Nginx+Php-fpm의 작동 원리에 대한 자세한 설명

移动用户-8334543
移动用户-8334543원래의
2022-06-16 16:43:47193검색

1. 동적 PHP 웹페이지에 대한 사용자 액세스 프로세스

1단계: 사용자가 nginx 서버에 http 요청을 보냅니다.
2단계: nginx는 사용자가 방문한 URI 및 접미사를 기반으로 요청을 판단합니다.3단계: 보시다시피 두 번째 단계에서 사용자가 동적 콘텐츠를 요청하면 nginx는 요청을 fastcgi 클라이언트에 전달하고 fastcgi_pass를 통해 사용자의 요청을 php-fpm으로 보냅니다. 사용자가 정적 리소스에 액세스하면 nginx가 직접 정적 콘텐츠를 전송합니다. 사용자가 요청한 콘텐츠가 사용자에게 반환됩니다.
단계 4: 래퍼는 php-fpm에서 전송된 요청을 수신한 후 PHP 동적 프로그램 구문 분석 서버를 호출하기 위한 새 스레드를 생성합니다.
단계 5: php는 쿼리 결과를 nginx로 반환합니다.
단계 6: nginx가 응답을 구성합니다. 메시지를 사용자에게 반환합니다.

cgi 프로토콜


cgi 통신 프로토콜

fastcgi 프로토콜

fastcgi 프로토콜은 주로 cgi 해석기를 시작해야 하는 필요성을 최적화하기 위해 cgi 프로토콜의 효율성을 보완하는 것입니다. 요청이 들어올 때마다 처리합니다. cgi 해석기 프로세스는 더 이상 웹 서버 요청을 받을 때마다 php.ini 파일을 다시 로드하고 실행 환경을 초기화할 필요가 없습니다

php-fpm 프로세스 관리자

php-fpm은 다음을 구현합니다. fastcgi 프로토콜이며 프로세스 관리자이며 시작 시 마스터 프로세스와 작업자 프로세스의 두 부분으로 구성됩니다. 마스터 프로세스는 일반적으로 포트를 수신하고 요청을 받는 데 사용되는 여러 작업자 프로세스가 있습니다. 웹서버, 각 작업자 프로세스에는 PHP 코드 실행을 위한 CGI 프로세스 인터프리터가 있습니다.

TCP의 5계층 프로토콜은 무엇인가요?


애플리케이션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층


TCP 3방향 핸드셰이크에 대해 이야기해 보세요.


1 클라이언트는 SYN을 1로 설정하여 연결 요청 세그먼트를 서버에 보낸 다음 시작 시퀀스 번호 seq=x

2를 선택하여 서버가 요청 세그먼트를 클라이언트에 보냅니다. 클라이언트는 SYN과 ACK가 1로 설정된 확인 메시지 세그먼트를 전송하고, 확인 번호 필드는 x+1이며, 클라이언트가 확인 메시지 세그먼트를 수신하면 시작 시퀀스 번호 seq=y

3이 생성됩니다. 그런 다음 확인 메시지 세그먼트를 서버에 보냅니다. 여기서 ACK는 1로 설정되고 확인 번호 필드는 y+1이며 시퀀스 번호 필드는 x+1입니다

참고: SYN은 동기화 시퀀스 번호입니다. ACK는 확인 시퀀스 번호 표시입니다

nginx는 요청을 수신하고 수신 포트에 따라 액세스할 PHP 파일을 찾은 다음 소켓을 통해 상주 메모리 fast-cgi 프로그램 중 하나와 연결을 설정하고 수신된 파일을 전달합니다. php-fpm은 fast-cgi 프로세스를 관리하고 정지합니다. 그런 다음 다시 시작하면 fast-cgi는 php 프로그램을 실행하고 데이터 수집을 완료한 후 연결을 통해 nginx로 반환하고 사용자에게 반환합니다. 고객.

쿠키와 세션의 차이점은 무엇인가요?

1. 쿠키는 브라우저에 저장되며, 세션은 서버에 저장됩니다.

2. 다른 사람이 로컬 쿠키를 분석하여 쿠키 스푸핑을 수행할 수 있습니다.

3. 단일 쿠키의 저장 한도는 다음과 같습니다. 4k, 브라우징 중 서버는 세션에 제한이 없습니다

위 내용은 Nginx+Php-fpm의 작동 원리에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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