>백엔드 개발 >PHP 튜토리얼 >LNMP 운영 및 유지보수 추적

LNMP 운영 및 유지보수 추적

不言
不言원래의
2018-07-13 15:48:272260검색

이 글은 주로 참고할만한 가치가 있는 LNMP의 운영 및 유지 관리 추적에 대해 소개합니다. 도움이 필요한 친구들은

LNMP의 운영 및 유지 관리 추적 기술을 참고할 수 있습니다.

얼마 전부터 회사의 LNMP 웹사이트를 운영하고 유지하기 시작했습니다. 오랜 노력 끝에 LNMP 서버에서 다양한 웹사이트 오류를 ​​디버깅하고 추적하는 많은 방법을 요약했습니다. 좋은 기억력은 나쁜 글쓰기만큼 좋지 않으니 정리해보겠습니다!

처음에는 웹 요청의 시작부터 응답까지 각 단계에서 서버와 브라우저가 수행하는 작업에 대해 내가 이해한 대로 정리하겠습니다. 모든 사용자 응답 예외는 이 프로세스에서 발생합니다. 각 프로세스의 세부 사항을 알면 다양한 방법을 사용하여 예외가 발생한 단계를 찾아 오류를 보다 정확하고 빠르게 찾을 수 있습니다. 다음은 제가 이 웹사이트에서 고문을 당하면서 겪었던 다양한 오류에 대한 목록을 지속적으로 업데이트하는 것입니다. 물론 다른 사람들에게 도움이 된다면 저도 영광으로 생각하겠습니다.

웹 요청 중에 정확히 무슨 일이 발생하나요?

LNMP 운영 및 유지보수 추적

위 사진은 간단한 웹 요청 과정인데, 사실 그림이 너무 단순해서 내용을 많이 숨겼네요. 위 사진 아래에 하나씩 설명하고, 포함되지 않은 부분이 있으면 추가해 주세요.

1단계

사용자는 http:www와 같은 URL을 입력합니다. Baidu.com을 브라우저에 연결하고 브라우저에 연결합니다. 예를 들어 chrom은 어느 서버에 액세스할지 알기 위해 이를 IP 주소로 확인해야 합니다. 브라우저가 DNS를 해결하는 단계는 다음과 같습니다.

  1. 브라우저 자체 DNS 캐시 검색 이 캐시는 캐시 시간이 짧고 캐시 수가 제한되어 있습니다.

  2. 운영 체제의 DNS 캐시 검색

  3. 호스트 파일의 DNS 매핑 읽기(일반적으로 로컬 개발용) 매핑은 이 파일을 수정하여 로컬 서버에 대한 브라우저 요청을 가로채서 로컬 서버 주소가 성공적으로 매핑될 수 있도록 하는 것입니다)

  4. 먼저 dns를 설정합니다 로컬 네트워크 카드 구성에서 서버가 도메인 이름 확인 요청을 시작하는데 수행되지 않는 일련의 운영자 처리 절차가 있는 것 같습니다.

  5. 이 단계까지는 기본적으로 실행되지 않기 때문에 일반적으로 DNS 운영업체의 DNS 서버가 처리해 주는 과정이 있는 것 같습니다.

  6. 구문 분석에 실패했습니다. 위 단계에 성공하면 성공적인 IP 주소가 반환됩니다.

두 번째 단계# 🎜🎜 #

브라우저는 이 IP 주소의 임의 포트와 특정 포트(기본값 80)를 사용하여 유명한 TCP 3방향 핸드셰이크를 시작합니다. http 요청이 nginx 서비스에 도달하는 과정은 대략 다음과 같습니다.

st=>start: TCP请求
en=>end: 异常
op=>operation: Nginx模块
cond1=>condition: 进入网卡?
cond2=>condition: 内核的TCP/IP协议栈?
cond3=>condition: 防火墙?

st->cond1
cond1(yes)->cond2
cond1(no)->en
cond2(yes)->cond3
cond2(no)->en
cond3(no)->en
cond3(yes)->op
3단계

핸드셰이크가 완료된 후 브라우저와 서버는 행복하게 http 요청을 보낼 수 있습니다. . , nginx의 구체적인 프로세스는 다음과 같습니다:

st=>start: http请求
en=>end: response响应 
op1=>operation: 第二步流程 
op2=>operation: nginx进程 
op3=>operation: 获取http的头部信息 
op4=>operation: 匹配server_name,定位到站点的root 
op5=>operation: 进入代码框架的路由 
op6=>operation: 框架的路由解析器解析出php文件 
op7=>operation: php进入fastcgi进程 
op8=>operation: fastcgi进程将php填充成html文件 
op9=>operation: html文件递交给nginx并设置响应信息 

st->op1->op2->op3->op4->op5->op6->op7->op8->op9->en
네 번째 단계

브라우저는 서버 응답 헤더와 응답 본문을 기반으로 시각적 페이지를 렌더링합니다.# 🎜🎜##🎜🎜 #

응답 코드설명#🎜🎜 # 1xx# 🎜🎜#정보 상태 설명2xx성공 상태 코드#🎜 🎜##🎜🎜 #3xx리디렉션 상태 코드301영구 리디렉션, 위치 응답 헤더 값은 여전히 ​​현재 URL이므로 숨겨진 리디렉션입니다302임시 리디렉션, 명시적 리디렉션, 위치 응답 헤더 값은 새 URL입니다.304Not Modified. 예를 들어 로컬에 캐시된 리소스 파일을 서버와 비교할 때 수정이 없는 것으로 확인되면 서버는 304 상태 코드를 반환하여 브라우저에 리소스를 요청할 필요가 없다고 알리고 로컬 리소스를 직접 사용하면 됩니다#🎜🎜 #4xx#🎜🎜 #ClientError404찾을 수 없음 요청한 URL 리소스가 존재하지 않습니다서버 오류내부 서버 오류 서버 내부 오류전면 프록시 서버가 백엔드 서버에 접속할 수 없는 경우 잘못된 게이트웨이가 나타납니다#🎜🎜 # 504Gateway Timeout 프록시가 백엔드 서버에 접속할 수 있지만 백엔드 서버가 지정된 시간 내에 프록시 서버에 응답하지 않음을 의미합니다.
# 🎜🎜# 5xx
500
502
#🎜🎜 #

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되길 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요!

관련 권장 사항:

PhpStorm 코드 형식 설정 소개

yii2 프레임워크의 di 컨테이너 소스 코드에서 리플렉션의 역할을 이해하는 방법

위 내용은 LNMP 운영 및 유지보수 추적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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