이 글은 주로 참고할만한 가치가 있는 LNMP의 운영 및 유지 관리 추적에 대해 소개합니다. 도움이 필요한 친구들은
얼마 전부터 회사의 LNMP 웹사이트를 운영하고 유지하기 시작했습니다. 오랜 노력 끝에 LNMP 서버에서 다양한 웹사이트 오류를 디버깅하고 추적하는 많은 방법을 요약했습니다. 좋은 기억력은 나쁜 글쓰기만큼 좋지 않으니 정리해보겠습니다!
처음에는 웹 요청의 시작부터 응답까지 각 단계에서 서버와 브라우저가 수행하는 작업에 대해 내가 이해한 대로 정리하겠습니다. 모든 사용자 응답 예외는 이 프로세스에서 발생합니다. 각 프로세스의 세부 사항을 알면 다양한 방법을 사용하여 예외가 발생한 단계를 찾아 오류를 보다 정확하고 빠르게 찾을 수 있습니다. 다음은 제가 이 웹사이트에서 고문을 당하면서 겪었던 다양한 오류에 대한 목록을 지속적으로 업데이트하는 것입니다. 물론 다른 사람들에게 도움이 된다면 저도 영광으로 생각하겠습니다.
위 사진은 간단한 웹 요청 과정인데, 사실 그림이 너무 단순해서 내용을 많이 숨겼네요. 위 사진 아래에 하나씩 설명하고, 포함되지 않은 부분이 있으면 추가해 주세요.
사용자는 http:www와 같은 URL을 입력합니다. Baidu.com을 브라우저에 연결하고 브라우저에 연결합니다. 예를 들어 chrom은 어느 서버에 액세스할지 알기 위해 이를 IP 주소로 확인해야 합니다. 브라우저가 DNS를 해결하는 단계는 다음과 같습니다.
브라우저 자체 DNS 캐시 검색 이 캐시는 캐시 시간이 짧고 캐시 수가 제한되어 있습니다.
운영 체제의 DNS 캐시 검색
호스트 파일의 DNS 매핑 읽기(일반적으로 로컬 개발용) 매핑은 이 파일을 수정하여 로컬 서버에 대한 브라우저 요청을 가로채서 로컬 서버 주소가 성공적으로 매핑될 수 있도록 하는 것입니다)
먼저 dns를 설정합니다 로컬 네트워크 카드 구성에서 서버가 도메인 이름 확인 요청을 시작하는데 수행되지 않는 일련의 운영자 처리 절차가 있는 것 같습니다.
이 단계까지는 기본적으로 실행되지 않기 때문에 일반적으로 DNS 운영업체의 DNS 서버가 처리해 주는 과정이 있는 것 같습니다.
구문 분석에 실패했습니다. 위 단계에 성공하면 성공적인 IP 주소가 반환됩니다.
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)->op3단계핸드셰이크가 완료된 후 브라우저와 서버는 행복하게 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네 번째 단계브라우저는 서버 응답 헤더와 응답 본문을 기반으로 시각적 페이지를 렌더링합니다.# 🎜🎜##🎜🎜 #
#🎜🎜 # | |
---|---|
2xx | 성공 상태 코드 |
리디렉션 상태 코드 | |
영구 리디렉션, 위치 응답 헤더 값은 여전히 현재 URL이므로 숨겨진 리디렉션입니다 | |
임시 리디렉션, 명시적 리디렉션, 위치 응답 헤더 값은 새 URL입니다. | |
Not Modified. 예를 들어 로컬에 캐시된 리소스 파일을 서버와 비교할 때 수정이 없는 것으로 확인되면 서버는 304 상태 코드를 반환하여 브라우저에 리소스를 요청할 필요가 없다고 알리고 로컬 리소스를 직접 사용하면 됩니다 | |
404 | |
# 🎜🎜# | 5xx |
500 | |
502 | |
504 | Gateway Timeout 프록시가 백엔드 서버에 접속할 수 있지만 백엔드 서버가 지정된 시간 내에 프록시 서버에 응답하지 않음을 의미합니다. |
#🎜🎜 # 위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되길 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요! 관련 권장 사항: |
위 내용은 LNMP 운영 및 유지보수 추적의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!