New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ob_gzhandler 대신 zlib.output_compression 사용 #1631

Closed
wants to merge 1 commit into
base: develop
from

Conversation

4 participants
@kijin
Contributor

kijin commented Jul 13, 2015

참고: https://www.xpressengine.com/forum/23043521

PHP 매뉴얼에서도 ob_gzhandler보다는 zlib.output_compression을 사용하라고 권장하고 있습니다.

Also note that using zlib.output_compression is preferred over ob_gzhandler().

실제 기능은 똑같지만, ob_gzhandler는 경우에 따라 FALSE를 반환하는 경우도 있기 때문에 간혹 백지현상의 원인이 되는 게 아닌가 의심이 들기도 합니다. zlib.output_compression을 사용하면 이런 문제는 봉쇄되겠지요.

@bnu bnu self-assigned this Jul 14, 2015

@wkpark

This comment has been minimized.

Show comment
Hide comment
@wkpark

wkpark Jul 14, 2015

Contributor

GZIP을 varnish와 같이 쓰는 경우에 이상하게 충돌이 나서 아예 GZIP설정을 끄고 사용중입니다.

아파치를쓸 경우에 PHP옵션을 다음과 같이 .htaccess에 넣을 수 있습니다. (물론 이를 쓸 수 있는 경우)

php_flag zlib.output_compression On

그렇기때문에 아예 GZIP 관련 설정을 XE에서 빼버리는 것도 좋으리라 생각됩니다.
(사실 이 패치가 GZIP관련 코드의 상당부분을 걷어내는 방식이지만...)

Contributor

wkpark commented Jul 14, 2015

GZIP을 varnish와 같이 쓰는 경우에 이상하게 충돌이 나서 아예 GZIP설정을 끄고 사용중입니다.

아파치를쓸 경우에 PHP옵션을 다음과 같이 .htaccess에 넣을 수 있습니다. (물론 이를 쓸 수 있는 경우)

php_flag zlib.output_compression On

그렇기때문에 아예 GZIP 관련 설정을 XE에서 빼버리는 것도 좋으리라 생각됩니다.
(사실 이 패치가 GZIP관련 코드의 상당부분을 걷어내는 방식이지만...)

@kijin

This comment has been minimized.

Show comment
Hide comment
@kijin

kijin Jul 14, 2015

Contributor

네, 장기적으로는 걷어내는 것이 좋겠습니다.

  • 이 PR처럼 바꿔보고 문제가 없다면 .htaccess를 사용하는 방향으로 더 나아갈 수도 있겠습니다.
  • @wkpark 님이나 제가 작성한 캐싱 최적화 PR이 받아들여진다면 캐싱 옵션 선택시 gzip을 아예 사용하지 않도록 고쳐줄 수도 있겠고요.
Contributor

kijin commented Jul 14, 2015

네, 장기적으로는 걷어내는 것이 좋겠습니다.

  • 이 PR처럼 바꿔보고 문제가 없다면 .htaccess를 사용하는 방향으로 더 나아갈 수도 있겠습니다.
  • @wkpark 님이나 제가 작성한 캐싱 최적화 PR이 받아들여진다면 캐싱 옵션 선택시 gzip을 아예 사용하지 않도록 고쳐줄 수도 있겠고요.
@wkpark

This comment has been minimized.

Show comment
Hide comment
@wkpark

wkpark Jul 14, 2015

Contributor

우분투 php5-fpm + nginx 쓰고있는데 .user.ini 파일을 wwwroot 최상위 디렉토리에 만들어 다음의 설정을 넣으면 설정값이 적용되는군. (phpinfo()를 통해 확인 가능)

[PHP]
;output_buffering = 1024
zlib.output_compression = On
Contributor

wkpark commented Jul 14, 2015

우분투 php5-fpm + nginx 쓰고있는데 .user.ini 파일을 wwwroot 최상위 디렉토리에 만들어 다음의 설정을 넣으면 설정값이 적용되는군. (phpinfo()를 통해 확인 가능)

[PHP]
;output_buffering = 1024
zlib.output_compression = On
@misol

This comment has been minimized.

Show comment
Hide comment
@misol

misol Jul 20, 2015

Contributor

이 PR을 아파치, PHP/5.5.15 기반, 그리고 nginx, PHP/5.5.9 기반에서 테스트 했을 때 서버 스크립트 문제가 발생하지 않았습니다.
클라우드 플레어를 이용했을 때 문제가 발생하지 않았습니다.
Window7 Internet Explorer 11.0.9600, Chrome 43.0.2357.134 m, Firefox 39.0 에서 테스트 했을때 클라이언트단 오류가 발생하지 않았습니다.
테스트 도중 구성한 페이지들에서 문제가 발생하지 않았습니다. 구성한 페이지는 게시판 목록, 게시판의 본문글, 위젯 페이지, 외부 페이지 등이 포함 되었습니다.

Contributor

misol commented Jul 20, 2015

이 PR을 아파치, PHP/5.5.15 기반, 그리고 nginx, PHP/5.5.9 기반에서 테스트 했을 때 서버 스크립트 문제가 발생하지 않았습니다.
클라우드 플레어를 이용했을 때 문제가 발생하지 않았습니다.
Window7 Internet Explorer 11.0.9600, Chrome 43.0.2357.134 m, Firefox 39.0 에서 테스트 했을때 클라이언트단 오류가 발생하지 않았습니다.
테스트 도중 구성한 페이지들에서 문제가 발생하지 않았습니다. 구성한 페이지는 게시판 목록, 게시판의 본문글, 위젯 페이지, 외부 페이지 등이 포함 되었습니다.

@wkpark

This comment has been minimized.

Show comment
Hide comment
@wkpark

wkpark Jul 20, 2015

Contributor

이 패치 이전에는 varnish + nginx를 같이 사용하면 이상하게 헤더 충돌이 나서 __OB_GZHANDLER_ENABLE__ 상수를 0으로 변경해줘야 했습니다. (config.user.inc.php) 그래야 varnish + nginx(+php5-fpm)이 제대로 작동하더군요. (nginx의 gzip 옵션과 충돌하는 듯)

이 패치를 써서 zlib.output_compression = On를 사용하는 경우에는 varnish + nginx를 사용하고 있는데도 아무런 문제가 없네요.

Contributor

wkpark commented Jul 20, 2015

이 패치 이전에는 varnish + nginx를 같이 사용하면 이상하게 헤더 충돌이 나서 __OB_GZHANDLER_ENABLE__ 상수를 0으로 변경해줘야 했습니다. (config.user.inc.php) 그래야 varnish + nginx(+php5-fpm)이 제대로 작동하더군요. (nginx의 gzip 옵션과 충돌하는 듯)

이 패치를 써서 zlib.output_compression = On를 사용하는 경우에는 varnish + nginx를 사용하고 있는데도 아무런 문제가 없네요.

@misol

This comment has been minimized.

Show comment
Hide comment
@misol

misol Jul 20, 2015

Contributor

참고: @wkpark varnish를 사용하지 않는 nginx 조건에서는 이 PR을 적용하지 않아도 gzip은 잘 작동합니다.

Contributor

misol commented Jul 20, 2015

참고: @wkpark varnish를 사용하지 않는 nginx 조건에서는 이 PR을 적용하지 않아도 gzip은 잘 작동합니다.

@wkpark

This comment has been minimized.

Show comment
Hide comment
@wkpark

wkpark Jul 20, 2015

Contributor

@misol // varnish가 gzip 헤더를 제대로 다루지 못하고 충돌할 수도 있다는 내용을 어디선가 본것같네요. 알려주셔서 감사합니다~

Contributor

wkpark commented Jul 20, 2015

@misol // varnish가 gzip 헤더를 제대로 다루지 못하고 충돌할 수도 있다는 내용을 어디선가 본것같네요. 알려주셔서 감사합니다~

@bnu bnu added the status/keep label Feb 1, 2017

@bnu bnu closed this Feb 1, 2017

@bnu bnu added this to 검토 중 in 이슈 진행 상황 Nov 28, 2017

@bnu bnu added this to the 1.9.0 milestone Nov 28, 2017

@bnu bnu moved this from 검토 중 to 해결 예정 in 이슈 진행 상황 Nov 28, 2017

@bnu bnu moved this from 해결 예정 to 검토 중 in 이슈 진행 상황 Nov 28, 2017

@bnu bnu moved this from 검토 중 to 해결 예정 in 이슈 진행 상황 Nov 28, 2017

@bnu bnu moved this from 해결 예정 to 해결 중 in 이슈 진행 상황 Nov 28, 2017

@bnu bnu moved this from 해결 중 to 이슈 종료 in 이슈 진행 상황 Nov 28, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment