찾다
백엔드 개발PHP 튜토리얼nginx+php는 어떻게 요청을 수행합니까? 작동 원리 소개

nginx+php 요청을 수행하는 방법은 무엇입니까? 다음 기사에서는 nginx+php 실행 요청의 작동 원리를 소개합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 친구가 될 수 있기를 바랍니다.

php 작동 원리

먼저 흔히 듣는 cgi, php-cgi를 이해해보자. fastcgi, php-fpm과 php의 작동 방식을 이해하는 데 도움이 되는 관계는 무엇입니까? 프로토콜은 웹 서버(예: nginx)를 결정하는 데 사용됩니다. 즉, 콘텐츠 배포 서버에서 전달되는 데이터와 데이터 형식은 무엇입니까#🎜 🎜#

php-cgi 프로세스 인터프리터#🎜🎜 #php-cgi는 php의 CGI 프로토콜 프로세스 인터프리터입니다. 시작되면 php.ini 파일을 로드해야 합니다 -> 실행 환경 초기화 -> 요청 처리 ->웹 서버로 콘텐츠 반환->php-cgi 프로세스 종료

# 🎜🎜#

fastcgi 프로토콜

fastcgi 이 프로토콜은 주로 CGI 프로토콜의 효율성 향상을 보완하는 프로토콜입니다. 요청이 올 때마다 cgi 인터프리터 프로세스가 더 이상 웹 서버 요청을 받을 때마다 php.ini를 다시 로드할 필요가 없습니다. #php-fpm 프로세스 관리자

php-fpm은 fastcgi 프로토콜용입니다. 구현은 시작 시 마스터 및 작업자 프로세스를 포함하는 프로세스 관리자입니다. 일반적으로 여러 작업자 프로세스가 있으며 각 작업자 프로세스에는 실행을 위한 CGI 프로세스 인터프리터가 있습니다. 원리

phpfpm을 시작하면 마스터 프로세스가 시작되고 .ini 파일이 로드되고 실행 환경이 초기화되며 여러 작업자 프로세스가 시작됩니다. 요청이 올 때마다 처리를 위해 작업자 프로세스로 전달됩니다

php 원활한 재시작 원칙

#🎜 🎜# php.ini 구성을 수정하고 다시 시작할 때마다 새 작업자 프로세스가 시작되어 새 구성을 로드하며, 작업이 완료된 후 기존 프로세스가 삭제되므로 원활한 다시 시작이 이루어집니다 # 🎜🎜##🎜 🎜#nginx 작동 원리

nginx와 php가 함께 작동하는 방식을 이해하려면 먼저 서버도 이해해야 합니다. nginx 구성 파일의 일부#🎜 🎜#

server {
    listen       80; #监听80端口,接收http请求
    server_name  www.example.com; #一般存放网址,表示配置的哪个项目
    root /home/wwwroot/zensmall/public/; # 存放代码的根目录地址或代码启动入口
    index index.php index.html; #网站默认首页
    
    #当请求网站的url进行location的前缀匹配且最长匹配字符串是该配置项时,按顺序检查文件是否存在,并返回第一个找到的文件
    location / {
          #try_files,按顺序检查文件是否存在,返回第一个找到的文件
          #$uri代表不带请求参数的当前地址
          #$query_string代表请求携带的参数
          try_files   $uri $uri/ /index.php?$query_string; #按顺序检查$uri文件,$uri地址是否存在,如果存在,返回第一个找到的文件;如果都不存在,发起访问/index.php?$query_string的内部请求,该请求会重新匹配到下面的location请求
    }
    
     #当请求网站的php文件的时候,反向代理到php-fpm去处理
    location ~ \.php$ {
          include       fastcgi_params; #引入fastcgi的配置文件
          fastcgi_pass   127.0.0.1:9000; #设置php fastcgi进程监听的IP地址和端口
          fastcgi_index  index.php; #设置首页文件
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #设置脚本文件请求的路径
    }
}
위 서버 구성의 전반적인 의미는 nginx가 포트 80에서 URL 요청을 수신할 때마다 URL에서 위치 일치를 수행한다는 것입니다. / 규칙이 일치하면 내부 요청이 리디렉션되고 /index.php?$query_string의 내부 요청이 시작되며 해당 위치 구성 규칙은 포트에서 수신 대기 중인 php-fpm의 마스터 프로세스로 요청을 보냅니다. 9000#🎜🎜 #Summary

가장 간단한 사용자 요청 프로세스는 아래에 요약되어 있습니다. #🎜🎜 #사용자 접속 도메인 이름 -> 도메인 이름은 DNS 확인 수행 -> 해당 IP 서버 및 포트에 요청 -> nginx는 해당 포트의 요청을 수신 -> nginx는 URL에서 위치 매칭 수행 -> 실행 일치하는 위치->nginx 아래의 규칙 php->php-fpm의 마스터 프로세스로 요청을 전달합니다. nginx 요청을 수신합니다.->마스터 프로세스는 유휴 작업자 프로세스 중 하나에 요청을 할당합니다.->작업자 프로세스는 다음을 실행합니다. request->worker 프로세스는 실행 결과를 nginx로 반환합니다.- >nginx는 결과를 사용자에게 반환합니다위 내용은 이 글의 전체 내용이므로, 모두의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 nginx+php는 어떻게 요청을 수행합니까? 작동 원리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 思否에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.