웹 사이트 의 서버 응답 시간 을 개선 하기 위해 jotcache와 같은 캐시 플러그인을 사용하는 것 외에는 무엇을 할 수 있습니까?
비활성 기사 모듈, 플러그인 및 구성 요소를 이미 모두 제거했습니다. 개선하기 위해 다른 방법이 있습니까?
클라이언트 (브라우저)가 자신의 요청에 응답하기 전의 시간 에 대해 이야기하고 있습니다. 그리고 페이지가로드되는 시간이 아닙니다.
웹 사이트 의 서버 응답 시간 을 개선 하기 위해 jotcache와 같은 캐시 플러그인을 사용하는 것 외에는 무엇을 할 수 있습니까?
비활성 기사 모듈, 플러그인 및 구성 요소를 이미 모두 제거했습니다. 개선하기 위해 다른 방법이 있습니까?
클라이언트 (브라우저)가 자신의 요청에 응답하기 전의 시간 에 대해 이야기하고 있습니다. 그리고 페이지가로드되는 시간이 아닙니다.
답변:
서버 측 성능을 높이기 위해 수행 할 수있는 몇 가지 단계가 있습니다. 이 중 일부는 대부분의 공유 호스트에서 작동하지 않습니다. 뛰어난 성능을 위해서는 일반적으로 더 세밀한 제어가 필요합니다.
모든 최적화와 마찬가지로 사이트 성능에 미치는 영향을 측정해야합니다. 기본 최적화에는 PageSpeed 및 YSlow 와 같은 도구가 유용합니다 (Firefox 버전을 권장합니다). 보다 심도 깊은 이해를 위해서는 일정 기간 동안 실제 시스템의 실제 응답 시간을 측정해야합니다.
Opcode 캐싱 사용
이것은 아마도 사이트 성능을 향상시키기 위해 할 수있는 가장 큰 일입니다. OpCache 또는 APC 를 사용하는 것이 좋습니다 . 이러한 캐시의 구성은 서버 및 사이트 별 요구에 따라 훨씬 더 높은 성능을 위해 조정할 수 있지만 설치는 이미 크게 향상되었습니다.
PHP 버전 업데이트
최신 PHP 버전에는 정기적으로 성능이 향상됩니다. 또한 Joomla가 최신 PHP 버전에서 실행할 때 더 나은 코드를 사용할 수있는 경우가 많이 있습니다. 현재 성능에 관심이 있다면 PHP 5.4 이전의 PHP 버전을 사용하지 않아야합니다.
PHP 설정
오래된 PHP 버전에 (<= 5.3) 테이크 케어 끕니다 register_globals
및 magic_quotes_gpc
무료 성능 승리를 위해. PHP> = 5.6 always_populate_raw_post_data
에서 -1로 변경하십시오 .
PHP 확장
Joomla에는 누락 된 PHP 확장을 해결하기위한 코드가 포함되어 있습니다. 이 확장명보다 항상 느립니다. 괜찮은 성능 향상을 위해 다음과 같은 확장을 설치 : mbstring
, zip
,ftp
gzip 사용
서버 측 압축을 활성화하면 CPU 리소스에 대한 대역폭이 거래됩니다. 대부분의 사이트에는 이것이 올바른 전화입니다. 텍스트 데이터 만 압축하도록주의하십시오. 이진 데이터를 압축하면 대역폭 이점없이 CPU 히트가 발생합니다. Joomla 설정에서 압축을 활성화 할 수도 있지만 서버에서이를 처리하도록하는 것이 좋습니다.
정적 리소스 사전 압축
나는 축소에 대해 이야기하지는 않지만 (이것도 도움이되지만) 이미 압축 된 리소스를 서버로 Nginx와 Apache를 구성하여 gzip 압축에서 CPU 적중을 효과적으로 제거 할 수 있습니다. 보너스 포인트 : 더 작은 파일 에는 Zopfli 를 사용하십시오 .
PHP에 FastCGI 사용
보다 구체적으로을 사용해야합니다 php-fpm
. 브라우저가 비 PHP 파일을 요청할 때 PHP가 시작되지 않습니다.
적절한 캐시 헤더를 사용하십시오
Expires
헤더를 사용하면 필요한 서버 리소스를 크게 줄일 수 있습니다. 모든 가장 빠른 요청은 결코 완료되지 않은 요청입니다.
일반적으로 고성능 사이트에는 Nginx를 사용하는 것이 좋습니다. 어떤 이유로 든 아파치를 사용해야하는 경우 보너스 팁이 있습니다.
AllowOverride 비활성화
많은 디스크 IO AllowOverride
를 None
방지하기위한 설정
FTP 모드를 사용하지 마십시오
사이트를 읽는 사용자에게는 영향을 미치지 않지만 확장 설치와 같은 일부 작업은 느려집니다.
사용하지 않는 확장 기능 끄기
이것은 특히 플러그인에 적용되며, 대부분은 모든 요청에서 실행됩니다. 메뉴 및 구성 요소를 비활성화하면 사용 가능한 확장 및 메뉴 유형을 나열 할 때 주로 도움이됩니다. 또한 Joomla 코어와 함께 제공되는 확장 프로그램을 통해 5 분 정도 걸리고 사용하지 않는 확장 기능을 비활성화하십시오.
콘텐츠 준비 끄기
많은 사용자 정의 모듈을 사용하는 경우 ( mod_custom
자체 작성과 같이 사용자 정의가 아닌) 해당 모듈 에서 컨텐츠 준비를 비활성화 할 수 있는지 확인하십시오. 이것은 약간의 처리를 절약합니다.
캐싱 사용
성능이 중요하다면 캐싱을 사용하도록 설정해야합니다. 익명 사용자가 많은 무거운 사이트를 읽는 데 특히 유용합니다. 로그인 한 사용자는 대부분의 캐시를 무시합니다. 이러한 캐시가 많으면 그 효과는 크지 않습니다.
대체 세션 핸들러 사용
대체 세션 핸들러를 사용하면 더 중요한 것을 위해 데이터베이스를 비울 수 있습니다. 디스크 IO가 다시 증가하기 때문에 파일 (Joomla 설정에서 None이라고 혼동 됨)을 권장하지 않습니다. APC를 사용하는 것이 잠재적으로 빠르지 만 모든 세션 데이터를 잃어 버릴 위험이 높아집니다. 오른쪽 중간 지점은 Memcache입니다. 이를 위해서는 추가 프로세스가 필요하지만 APC보다 안정적이며 모든 데이터를 데이터베이스에 저장하는 것보다 훨씬 빠릅니다.
사이트를 단순하게 유지
당신은 정말 그 페이스 북 버튼이 필요합니까? 배너 뒤에 숨겨져있어 아무도 볼 수없는 귀여운 아이콘은 어떻습니까? 사이트 표시가 적을수록 더 빠릅니다. 또한 가능한 경우 이미지 대신 CSS3을 사용하십시오.
파비콘 설정
Internet Explorer 4.0 브라우저로 거슬러 올라간 결정에 감사하여 favicon.ico
사용자가 사이트를 방문 할 때마다 호출되는 파일을 요청합니다 . 하나가 없으면 404 응답이 캐시되지 않으므로 불필요한 IO가 발생합니다. HTML 메타 태그로 사이트 아이콘을 지정하거나 favicon.ico
웹 루트에 호출 된 파일을 추가하십시오 . 파비콘을 원하지 않습니까? 해당 위치에 1x1 픽셀 크기의 투명 PNG를 배치하십시오. 확장명은 여전히이어야합니다 .ico
.
이미지 최적화
이미지, 특히 PNG 파일을 최적화하면 어떤 종류의 절약 효과를 얻을 수 있는지 놀랍습니다. OS X에서 사용할 수있는 ImageOptim 을 개인적으로 사용하는 모든 운영 체제에 사용할 수있는 다양한 도구 가 있습니다. Joomla의 핵심 이미지는 이미 최적화되어 있지만 자신의 이미지를 통해 이동합니다. 특히 템플릿이 중요합니다. 사용중인 확장을 확인할 수도 있습니다. 이들이 오픈 소스 인 경우 새로 최적화 된 이미지가 포함 된 풀 요청을 제공하지 않는 이유는 무엇입니까?
정말로 모든 것을 끝내고 싶다면 사이트 앞에 바니시 를 두십시오. 요청을 사이트에 캐시하고 가능하면 자체 캐시에서 요청을 처리하며 Joomla에 절대로 영향을 미치지 않습니다. 복잡한 도구이지만 많은 기능이 있습니다. Joomla는 ESI (Edge Side Includes)와 같은 고급 기능을 활용하지 않지만 사용자 고유의 코드는 가능합니다.
사이트의 응답 시간을 향상시키기 위해 할 수있는 한 가지 큰 일은 모듈 설정을 업데이트하는 것입니다. 사용자 정의 모듈 (mod_custom 사용)에는 컨텐츠 준비를 활성화 / 비활성화하는 옵션이 있습니다. 이를 통해 사용자 정의 모듈 내의 데이터 컨텐츠에서 컨텐츠 플러그인을 실행할 수 있습니다. 올바르게 사용하면 강력하지만 모듈 출력에 렌더링 시간이 추가됩니다. 실제로 사용자 정의 모듈 컨텐츠 내에서 컨텐츠 플러그인을 사용하지 않는 한,이를 해제하는 것이 가장 좋습니다. 이렇게하면 모듈 렌더링 시간이 줄어 듭니다.
설정 스크린 샷 :
참고 : 답변이 도움이 되었으면 왼쪽의 체크 표시를 클릭하여 답변을 수락하십시오.
귀하는 Google 페이지 속도를 통해 귀하의 사이트를 운영하고 있으며 실제로 페이지 응답 시간, 즉 마크 업이 브라우저로 전송되는 데 걸리는 시간을 줄이고 자한다고 가정합니다.
이것의 가장 큰 범인은 무거운 쿼리입니다. 디버그를 켜고 페이지 맨 아래에서 가장 많은 쿼리를 찾아 제거하거나 줄이십시오. MySQL 서버의 느린 쿼리 로그를 도울 수도 있습니다.
다음으로 볼 수있는 것은 캐싱입니다. 사이트의 종류에 따라 보수적 또는 점진적 캐싱을 설정할 수 있습니다. 프로그레시브는 사용자 관련 기능이없는 사이트에서 사용됩니다.
내가 아는 것이 도움이 될 수있는 것들 (대부분 나열되어 있음)은 다음과 같습니다.
내장 Joomla 캐시 (또는 서버에서 APC 사용 가능)와 gzip 또는 로켓 테마의 rockbooster 플러그인과 같은 플러그인을 조합하여 사용했습니다. 또한 아마존 계정으로 nonumbers CDN 플러그인을 사용합니다.
확실히 도움이되지만 문제가있는 구성 요소에 대해서는 사이트를보고 캐시를 비활성화해야합니다. 우리 사이트에서 CiviCRM을 우회해야했습니다. Joomla는이를 처리 할 수있는 cachecontrol 플러그인을 제공합니다.
또한 로컬 자산을 줄이고 적절한 캐싱을 검토하려고합니다. CDN 플러그인을 사용하면됩니다. 다음은 내가 권장하는 두 가지입니다.
'corePHP'jomCDN- https: //www.corephp.com/joomla-products/jomcdn
Joomla를위한 NoNumbers CDN! -http: //www.nonumber.nl/extensions/cdnforjoomla
또한 위의 방법으로 문제를 해결하지 못하는 경우 템플릿, 서버 자체 또는 기타 다른 문제와 같이 더 깊은 문제가있을 수 있습니다. 이 경우 누군가를 고용하여 문제를 찾아 내고 해결하는 것이 가장 좋습니다.
.htaccess 파일에서이 코드를 사용할 수도 있습니다.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.your domain [nocase]
RewriteRule ^(.*) http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
Joomla를 사용하여 수백 개의 웹 사이트를 만들었습니다!
대부분의 경우 사람들은 Joomla가 서버에서 많은 작업을하고 있다고 생각하지만 저의 분석에 따르면 웹 사이트를 빠르게 유지하는 가장 중요한 것은 이미지와 JS / CSS를 최적화하는 것입니다.
JCE와 같은 Joomla 편집기를 사용하여 이미지 크기 만 변경하지 마십시오. 포토샵이나 다른 편집기와 같은 이미지 편집기를 사용하여 필요한 크기로 이미지 크기를 조정하십시오!
우리는 항상 Pingdom Tools를 사용하여 웹 사이트 속도를 분석하고 T3 Framework의 내장 기능을 사용하여 JS / CSS를 최적화합니다!
사용하지 않는 플러그인을 제거 했습니까? Joomla는 요청에서 트리거 된 이벤트에 대해 게시 된 모든 플러그인을로드하고 처리해야합니다.
설치 한 확장 기능과 Joomla와의 상호 작용 방식을 이해해야합니다!
많은 확장 프로그램은 코드 기능을 시작하기 위해 컨텐츠, 시스템 또는 사용자 활동을 관리하는 플러그인을 설치합니다. 그들 중 일부는 불필요한 것일 수 있습니다.
k2는 단일 언어 사이트에 대한 실제 출력을 생성하지 않는 언어 관련 이벤트에 응답하는 많은 플러그인을 설치한다는 것을 알고 있습니다. 해당 플러그인을 게시 취소하면 처리 시간이 단축 될 수 있습니다.
아마도 OP가 찾고 있던 대답은 아니지만 모든 사람에게 명확하지 않은 경우를 대비하여 언급 할 가치가 있습니다 (아직 다른 대답은 아직 언급하지 않았습니다). 메모리, CPU 및 디스크 속도와 같은 서버 리소스를 개선하십시오.
공유 웹 호스팅을 사용하는 경우 "경제"계획에서 "사업"계획 또는 다른 고급 계획으로 업그레이드하면 웹 사이트에서 사용 가능한 서버 자원이 향상되고 서버 응답 시간이 단축 될 수 있습니다. 더 나은 품질의 호스팅 회사 (예 : 혼잡하지 않은 공유 웹 호스팅 서버)로 이전하는 것도 도움이 될 수 있습니다.
더 나은 호스팅 계획을 통해 기본 호스팅 계획에 포함되지 않은 성능 향상에 액세스 할 수도 있습니다. 예를 들어 "GrowBig"및 "GoGeek"SiteGround 호스팅 계획에는 서버 응답 시간을 크게 줄이는 데 도움이되는 동적 캐시가 포함됩니다. "스타트 업"계획에서 동적 캐시 옵션을 사용할 수 없습니다.