>  기사  >  백엔드 개발  >  중소 규모 프로젝트에서 nginx, php-fpm, php의 어떤 구성이 일반적으로 사용되고 중요하며 주의가 필요합니까? ? ?

중소 규모 프로젝트에서 nginx, php-fpm, php의 어떤 구성이 일반적으로 사용되고 중요하며 주의가 필요합니까? ? ?

WBOY
WBOY원래의
2016-09-30 09:37:34919검색

다양한 구성을 보러 갔는데 너무 많고 현재의 초보적인 운영 및 유지 관리 수준으로는 모두 이해하는 것이 불가능하므로 여러분이 알고 계시는 구성 중에서 어떤 구성이 필요한지 여쭤보고 싶습니다. 좋은 유지 관리 항목, 향상된 성능을 이해하고 더 효과적으로 구성하는 방법.

답글 내용:

다양한 구성을 보러 갔는데 너무 많고 현재의 초보적인 운영 및 유지 관리 수준으로는 모두 이해하는 것이 불가능하므로 여러분이 알고 계시는 구성 중에서 어떤 구성이 필요한지 여쭤보고 싶습니다. 좋은 유지 관리 항목, 향상된 성능을 이해하고 더 효과적으로 구성하는 방법.

정말 큰 질문입니다. 제가 개인적으로 우려하는 점을 말씀드리겠습니다. 다른 파트너가 추가하여 개선해 주시면 감사하겠습니다.

안전

  1. nginx(사용자 구성 항목), php-fpm(사용자, 그룹 구성 항목) 및 기타 서비스는 물론 웹사이트 디렉토리 권한, 사용자 및 사용자 그룹이 정말 중요합니다

  2. PHP 보안 측면에서 프로젝트 요구 사항이 없는 경우 모든 시스템 수준 기능을 비활성화하는 것도 주의하시기 바랍니다(disable_functions)

  3. PHP에서 오류 인쇄를 켜지 마세요. 정보 노출 및 공격을 받기 쉽습니다

<code>display_startup_errors = Off ,display_errors = Off</code>

실적

  1. nginx 프로세스 수worker_processes, 최대 연결 수worker_connections

  2. php-fpm 성능 관련: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers, pm.max_requests

로그 모니터링 및 분석

  1. nginx 로그: access_log는 log_format과 협력합니다

  2. php 로그: log_errors

  3. php-fpm은 느린 실행 로그를 기록합니다. Slowlog는 request_slowlog_timeout과 협력합니다

시스템 수준(iptables, /etc/sysctl.conf 등)에도 주의하겠습니다.

제안

메모리, 트래픽, CPU, 프로세스 수, 디스크 공간 등을 모니터링하려면 스크립트를 직접 작성하는 것이 가장 좋습니다. 모니터링 제품, 오픈 소스 모니터링 프로젝트 등을 사용하여 경보 전략을 합리적으로 제어할 수도 있습니다.

그런 다음 위 구성에서 생성된 로그 파일을 정기적으로 분석하고, 느린 응답, 잘못된 시간, 느린 실행이 있는 일부 로그의 문제를 해결하고 이해하며, 작업 중 일상적인 성능 문제를 해결합니다

php의 구성은 기본적으로 기본값이므로 변경할 필요가 없습니다. 중요한 점은 Xdebug를 추가할 때

와 같은 구성을 php.ini에 추가해야 한다는 것입니다.
<code>[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.0.0/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0 
xdebug.cli_color=1
xdebug.show_local_vars=1</code>

Xdebug는 개발 환경에서 특히 유용합니다. 프로덕션 환경에서 OPcache를 활성화해야 하는 경우 php.ini에서 다음과 같은 OPcache 구성을 열어야 합니다.

<code>[OPcache]
zend_extension="/Applications/MAMP/bin/php/php7.0.0/lib/php/extensions/no-debug-non-zts-20151012/opcache.so"
  opcache.memory_consumption=128
  opcache.interned_strings_buffer=8
  opcache.max_accelerated_files=4000
  opcache.revalidate_freq=60
  opcache.fast_shutdown=1
  opcache.enable_cli=1</code>

PHP 로그 처리에 관해서는 monolog/monolog 라이브러리를 사용하여 로그 인쇄를 처리하는 것이 좋습니다.
여기서는 예외 처리 도구인 Sentry와 로그 처리 도구인 Logentries를 추천합니다.

php-fpm:

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