Skip to content

Commit

Permalink
1
Browse files Browse the repository at this point in the history
1
  • Loading branch information
javaliv2 committed Jan 31, 2023
1 parent c95ca40 commit 3acb1ff
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 16 deletions.
29 changes: 29 additions & 0 deletions admin/environment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,35 @@
설정이 변경될 때마다 :ref:`admin-log-info` 에 변경사항이 기록된다.


.. _api-conf-reload-mode:

Reload 동작방식
------------------------------------

``v2.8.0`` 부터 설정 Reload의 상세 동작방식을 지원한다. ::

# <Server><Cache>

<Reload>Shared<Reload>

- ``<Reload> (기본: Exclusive)``

- ``Exclusive (기본)`` 전체 가상호스트를 상호배제적으로 설정변경 처리한다.

.. figure:: img/reload_exclusive.png
:align: center

모든 설정이 한번에 Exclusive (상호배제)상태에서 로딩된다.

- ``Shared`` 변경된 가상호스트만 상호배제적으로 설정변경 처리한다.

.. figure:: img/reload_shared.png
:align: center

``Exclusive`` 상태 들어가기 전 변경 필요한 가상호스트만 추려서 로딩한다.



server.xml 전역설정
====================================

Expand Down
24 changes: 10 additions & 14 deletions admin/handling_http_requests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -645,32 +645,28 @@ Value가 입력되지 않은 경우 빈 값("")이 입력된다.
# server.xml - <Server><VHostDefault><Options>
# vhosts.xml - <Vhosts><Vhost><Options>

<Compression Method="gzip" Level="6" SourceSize="2-2048">OFF</Compression>
<Compression GzipLevel="6" BrotliQuality="11" BrotliWindow="22" SourceSize="2-2048">OFF</Compression>

- ``<Compression>``

- ``OFF (기본)`` 압축 기능을 사용하지 않는다.

- ``ON`` 압축 기능을 사용한다. 다음 속성을 지원한다.

- ``Method (기본: gzip)`` 압축 방식을 지정한다. gzip만 지원된다.
- ``Level (기본: 6)`` 압축 단계를 지정한다. 이 값은 ``Method`` 에 따라 달라진다. gzip은 1~9까지 지정이 가능하다. 숫자가 작을수록 빠르지만 압축률이 나쁘고, 클수록 느리지만 압축률이 좋다.
- ``SourceSize (기본: 2-2048, 단위: KB)`` 원본 크기를 범위로 지정한다.
너무 작은 파일은 압축률이 떨어진다.
반대로 너무 큰 파일은 과도하게 CPU를 점유할 수 있다.
- ``GzipLevel (기본: 6)`` gzip 알고리즘 압축 단계를 1~9 범위에서 지정한다. 숫자가 작을수록 빠르지만 압축률이 나쁘고, 클수록 느리지만 압축률이 좋다.
- ``BrotliQuality (기본: 11)`` brotli 알고리즘 압축 단계를 0~11 범위에서 지정한다. `BrotliEncoderParameter 참고 <https://brotli.org/encode.html#a9a8>`_
- ``BrotliWindow (기본: 22)`` brotli 슬라이딩 LZ77 윈도우 크기를 10~24 범위에서 지정한다. `BrotliEncoderParameter 참고 <https://brotli.org/encode.html#a9a8>`_
- ``SourceSize (기본: 2-2048, 단위: KB)`` 원본 크기를 범위로 지정한다. 너무 작은 파일은 압축률이 떨어진다. 반대로 너무 큰 파일은 과도하게 CPU를 점유할 수 있다.

압축된 콘텐츠는 원본과 다른 콘텐츠로 인식/캐싱되며, 동일한 요청에 대해 다시 압축되지 않는다.

압축 대상은 /svc/{vhost}/compression.txt 에 지정한다. 정의된 순서대로 적용된다. ::

# /svc/www.example.com/compression.txt
# 구분자는 콤마( , ) 이다.
# {URL 조건}, {Method}, {Level} 순서로 표기한다.

/sample.css, no // 압축하지 않는다.
*.css // *.css 조건에 대해 기본 Method와 Level로 압축한다.
*.htm, gzip // *.htm 조건에 대해 gzip으로 압축한다. (기본 Level)
*.xml, , 9 // *.xml 조건에 대해 Level 9로 압축한다. (기본 Method)
*.js, gzip, 5 // *.js 조건에 대해 gzip (Level=5)으로 압축한다.
# 압축대상 파일 또는 * 패턴을 지정한다.

/sample.css
/svc/packages/*.xml

압축은 CPU자원을 많이 소모하는 기능이다.
다음은 파일 크기별 GZIP(Level: 9) 성능 테스트 결과이다.
Expand Down
Binary file added admin/img/reload_exclusive.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added admin/img/reload_shared.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions admin/releasenote.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,21 @@
Appendix E: 릴리스 노트
***********************


v2.8.x
====================================

.. _release-cdn-2-8-0:

2.8.0 (2023.01.31)
----------------------------

- ``brotli`` :ref:`handling_http_requests_compression` 알고리즘 지원
- :ref:`api-conf-reload-mode` - 변경된 가상호스트만을 로딩하는 ``Shared`` 모드 추가
- :ref:`handling_http_requests_http2` 가 활성화된 상태에서 ``ECDSA`` 인증서가 로딩되지 않던 문제 수정
- `dlsym <https://man7.org/linux/man-pages/man3/dlsym.3.html>`_ 함수로 참조되는 외부 라이브러리 로딩속도 개선


v2.7.x
====================================

Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

# General information about the project.
project = 'STON Edge Server'
copyright = '2022, WineSOFT Inc.'
copyright = '2023, WineSOFT Inc.'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down
2 changes: 1 addition & 1 deletion index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ STON Edge Server 완벽 가이드


:저자: STON 개발팀
:최신버전: v2.7.42
:최신버전: v2.8.0


1부. STON 기본: 설정 배우기
Expand Down

0 comments on commit 3acb1ff

Please sign in to comment.