>  기사  >  백엔드 개발  >  PHP와 Nginx의 두 가지 배포 방법 비교(그림)

PHP와 Nginx의 두 가지 배포 방법 비교(그림)

黄舟
黄舟원래의
2017-06-18 09:31:461433검색

이 글에서는 주로 Nginx와 PHP의 두 가지 배포 방법을 비교하는 관련 정보를 소개합니다. 필요한 친구는

Nginx와 PHP 비교에 대한 자세한 설명을 참조하세요. 두 가지 배포 방법 중

2가지 배포 방법소개

첫 번째

  • HTTP 역방향 프록시 및 로드 밸런싱을 위한 nginx 서버가 앞에 1대

  • N도 뒤에 있습니다. 서버의 Nginx 웹 서비스 역할을 하며 php-fpm에서 제공하는 빠른 cgi 서비스를 호출합니다

  • 이 배포 방법이 가장 일반적입니다. 웹 서비스와 PHP 서비스는 모두 동일한 서버에 배포됩니다

두 번째 방법

  1. 웹 서비스를 위한 전면에 하나의 nginx 서버

  2. 뒷면 서버는 nginx 서버가 호출할 수 있도록 php-fpm 서비스만 배포합니다.

  3. 전면에 하나의 nginx 서버와 여러 개의 php-fpm 서비스 back 로드 밸런싱도 가능합니다

아래와 같이

비교

시스템 설계 관점에서

첫 번째 배포 방법은 기존 배포 방법으로 대형, 중형에 적용할 수 있습니다. 두 번째는 서로 다른 서비스가 서로 다른 서버에 배포된다는 점이지만 몇 가지 문제도 있습니다.

    프런트엔드 nginx는 웹 서비스 역할을 하고, 압축 전송,
  • 캐싱

    설정, 등 모두가 이 서버에 집중되어 있어 부담이 크며 쉽게 병목 현상이 발생할 수 있습니다. 정적 리소스가 CDN에 저장되어 있고 HTTP 압축 전송이 필요하지 않은 경우 이 배포 방법은 상당히 합리적입니다.

  • 위의 두 가지를 수행하면 중간에 nginx 로드 밸런싱 및 역방향 프록시가 배치되고, 후면에 php-fpm 서비스가 배치되는 등 성능 측면에서 두 번째 배치 방법과 비교하면, 첫 번째 유형에는 프로세스 간 상호 작용이 한 번 더 필요합니다.

  • 첫 번째 배포 유형에 따르면 http 요청이 오면 먼저 nginx 역방향 프록시가 이를 nginx 웹 서비스(네트워크를 통해)로 전달하고 웹 서비스는 fastcgi 프로토콜을 통해 nginx 웹 서비스와 통신합니다(프로세스 간 상호 작용). -fpm through the network

첫 번째 배포, 네트워크를 통해 상호작용하는 것은 HTTP 프로토콜이고 두 번째 배포는 fast-cgi 프로토콜입니다.

빠른 cgi의 데이터 패킷은 HTTP보다 약간 크고, 빠른 cgi 프로토콜은 HTTP보다 더 큽니다. 더 많은 매개변수 정보, 전송 제어 정보 등을 전달합니다. 빠른 cgi 프로토콜은 HTTP 프로토콜보다 형식이 더 엄격합니다. 운영 및 유지 관리 측면에서 첫 번째는 가장 일반적인 배포 방법으로, 웹 서비스를 제공하는 모든 서버의 서비스가 동일하고 단조롭고 광범위합니다.
  1. 두 번째는 nginx와 PHP-fpm을 별도로 배포하는 것이며, 서버 클러스터에 다양한 서비스를 배포하는 방법이 더 자세히 설명되어 있습니다. 웹 서비스의 압력 분포를 계산하면 하드웨어 자원을보다 정확하게 사용할 수 있습니다. 운영 및 유지 관리 비용도 더 높습니다.

  2. 개발 및 테스트 관점에서
  3. 두 배포 방법 모두 개발 또는 테스트 환경에 적합하지 않습니다.
개발 및 테스트 환경에서는 nginx와 PHP를 하나의 서버에 배포할 수 있으며 역방향 프록시와 로드 밸런싱이 필요하지 않습니다.

요약

LAMP 환경 배포라면 첫 번째 유형이 더 일반적입니다.

LAMP가 아닌 경우 C/C++ 및 Java fastcgi 프로그램과 같은 다른 fastcgi 서비스와 상호 작용하는 nginx입니다. 대규모 네트워크 애플리케이션에서는 두 번째와 유사한 배포가 일반적입니다. 다양한 서비스를 별도로 배포하면 시스템의 네트워크 구조가 단순화되고 유지 관리가 더 쉬워집니다.

위 내용은 PHP와 Nginx의 두 가지 배포 방법 비교(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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