๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น์œผ๋กœ Nginx๋ฅผ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.

ะŸั€ะธะฒะตั‚!
์ œ ์ด๋ฆ„์€ Sergey์ด๊ณ  Tinkoff.ru ํ”Œ๋žซํผ์˜ API ํŒ€์—์„œ ์ธํ”„๋ผ ์—”์ง€๋‹ˆ์–ด๋กœ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์šฐ๋ฆฌ ํŒ€์ด ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์ค€๋น„ํ•  ๋•Œ ์ง๋ฉดํ–ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Nginx์— ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด. ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋„๊ตฌ์— ๋Œ€ํ•ด์„œ๋„ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

Nginx๋Š” ๋‹ค๊ธฐ๋Šฅ์ด๋ฉฐ ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์ˆ˜์˜ ๋ชจ๋“ˆ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๊ฒƒ์€ ์™„์ „ํ•œ ๋ชฉ๋ก์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์ ํŠธ๋Š” ๋ฐธ๋Ÿฐ์„œ์˜ ๊ธฐ๋Šฅ๊ณผ Nginx ๋ฒ„์ „(์˜ˆ: http/2 ๋ฐ grpc ํ”„๋ก์‹œ ์กด์žฌ) ๋ฐ ๋ชจ๋“ˆ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ถ€๊ณผํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํŠน์ • Linux ๋ฐฐํฌํŒ์—์„œ ์‹คํ–‰๋˜๋Š” ํ•„์ˆ˜ ๋ชจ๋“ˆ ์„ธํŠธ๋ฅผ ๊ฐ–์ถ˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ด๋Š” deb ๋ฐ rpm ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ต์…˜์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฐธ๋Ÿฐ์„œ์˜ ๊ธฐ๋Šฅ์„ ์‹ ์†ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์ฆ‰์‹œ ์งˆ๋ฌธ์ด ์ƒ๊น๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์€ ์ž์›์„ ์†Œ๋น„ํ•˜๋ฉด์„œ ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์œ ํ•œํ•œ ์ˆ˜์˜ ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์›ํ•˜๋Š” OS์— ๋Œ€ํ•œ deb/rpm ํŒจํ‚ค์ง€ ํ˜•์‹์˜ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๊ณต์‹ํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์˜ Nginx๊ฐ€ ํฌํ•จ๋œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ํ•„์ˆ˜ ๋ชจ๋“ˆ์ด ํฌํ•จ๋œ ํŒจํ‚ค์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ  ๋งค์šฐ ์ง€๋ฃจํ•ฉ๋‹ˆ๋‹ค.
  • ์ด Nginx ์ธ์Šคํ„ด์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์กฐ๋ฆฝ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์˜ ์‚ฌ์–‘์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ Nginx ํŒจํ‚ค์ง€๋ฅผ ์กฐํ•ฉํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ๋Œ€ํ•œ Github์—์„œ ์ ํ•ฉํ•œ ์˜ต์…˜์„ ์ฐพ์ง€ ๋ชปํ•ด ์šฐ๋ฆฌ๋Š” ์ž์ฒด ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. nginx ๋นŒ๋”.

๋ช…์„ธ์„œ

์šฐ๋ฆฌ ๋„๊ตฌ์—์„œ๋Š” ์ฝ”๋“œ ํ˜•์‹์œผ๋กœ ์‚ฌ์–‘์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ƒ์„ฑํ•˜์—ฌ Git ์ €์žฅ์†Œ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์— ์ต์ˆ™ํ•œ ํ˜•์‹์ธ yaml์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์–‘ ์˜ˆ:

nginx_version: 1.14.1
output_package: deb
modules:
  - module:
      name: nginx-auth-ldap
      git_url: https://github.com/kvspb/nginx-auth-ldap.git
      git_branch: master
      dependencies:
        - libldap2-dev
  - module:
      name: ngx_http_substitutions_filter_module
      git_url: https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
  - module:
      name: headers-more-nginx-module
      web_url: https://github.com/openresty/headers-more-nginx-module/archive/v0.261.zip
  - module:
      name: nginx-module-vts
      git_url: https://github.com/vozlt/nginx-module-vts.git
      git_tag: v0.1.18
  - module:
      name: ngx_devel_kit
      git_url: https://github.com/simplresty/ngx_devel_kit.git
      git_tag: v0.3.0
  - module:
      name: ngx_cache_purge
      git_url: https://github.com/FRiCKLE/ngx_cache_purge.git
  - module:
      name: ngx_http_dyups_module
      git_url: https://github.com/yzprofile/ngx_http_dyups_module.git
  - module:
      name: nginx-brotli
      git_url: https://github.com/eustas/ngx_brotli.git
      git_tag: v0.1.2
  - module:
      name: nginx_upstream_check_module
      git_url: https://github.com/yaoweibin/nginx_upstream_check_module.git
  - module:
      name: njs
      git_url: https://github.com/nginx/njs.git
      git_tag: 0.2.5
      config_folder_path: nginx

์—ฌ๊ธฐ์„œ๋Š” ํ•„์ˆ˜ ๋ชจ๋“ˆ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋œ Nginx ๋ฒ„์ „ 1.14.2์˜ deb ํŒจํ‚ค์ง€๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์ด ์žˆ๋Š” ์„น์…˜์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ:
    • Git ์ €์žฅ์†Œ. ๋ถ„๊ธฐ๋‚˜ ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์•„์นด์ด๋ธŒ ์›น ๋งํฌ.
    • ์•„์นด์ด๋ธŒ์— ๋Œ€ํ•œ ๋กœ์ปฌ ๋งํฌ.

์ผ๋ถ€ ๋ชจ๋“ˆ์—๋Š” ์ถ”๊ฐ€ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด nginx-auth-ldap์—๋Š” libldap2-dev๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ ์„ค๋ช…ํ•  ๋•Œ ํ•„์š”ํ•œ ์ข…์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

์šฐ๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํŒŒ์ผ, ํŒจํ‚ค์ง€ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ ๊ธฐํƒ€ ๋ณด์กฐ ์†Œํ”„ํŠธ์›จ์–ด์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์„ค์น˜๋œ ํ™˜๊ฒฝ์„ ๋น ๋ฅด๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ–์ถ˜ Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค(์ €์žฅ์†Œ์—๋Š” ์ด๋ฏธ ubuntu ๋ฐ centos์šฉ Docker ํŒŒ์ผ์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค).

์‚ฌ์–‘์ด ์ž‘์„ฑ๋˜๊ณ  ํ™˜๊ฒฝ์ด ์ค€๋น„๋œ ํ›„ ์ด์ „์— ์ข…์†์„ฑ์„ ์„ค์น˜ํ•œ ๋นŒ๋”๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

pip3 install -r requirements.txt
./main.py build -f [ะบะพะฝั„ะธะณ_ั„ะฐะนะป].yaml -r [ะฝะพะผะตั€_ั€ะตะฒะธะทะธะธ]

์—ฌ๊ธฐ์˜ ๊ฐœ์ • ๋ฒˆํ˜ธ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŒจํ‚ค์ง€์˜ ๋ฉ”ํƒ€ ์ •๋ณด์— ๊ธฐ๋ก๋˜๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ ์‰ฝ๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์‚ฌํ•ญ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

builder - INFO - Parse yaml file: example.config.yaml
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.14.1.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - Module nginx-auth-ldap will download by branch
builder - INFO - -- Done: nginx-auth-ldap
builder - INFO - -- Done: ngx_http_substitutions_filter_module
builder - INFO - Module headers-more-nginx-module will downloading
builder - INFO - Module nginx-module-vts will download by tag
builder - INFO - -- Done: nginx-module-vts
builder - INFO - Module ngx_devel_kit will download by tag
builder - INFO - -- Done: ngx_devel_kit
builder - INFO - -- Done: ngx_cache_purge
builder - INFO - -- Done: ngx_http_dyups_module
builder - INFO - Downloading dependencies
builder - INFO - Building .deb package
builder - INFO - Running 'dh_make'...
builder - INFO - Running 'dpkg-buildpackage'...
dpkg-deb: building package 'nginx' in '../nginx_1.14.1-1_amd64.deb'.

๋”ฐ๋ผ์„œ ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น๋งŒ์œผ๋กœ ํ™˜๊ฒฝ๊ณผ ํ•„์š”ํ•œ Nginx ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒจํ‚ค์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ž„๋ฒ ๋”ฉ

๋˜ํ•œ ๋„๊ตฌ๋ฅผ CI/CD ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ค๋Š˜๋‚  ์กด์žฌํ•˜๋Š” ๋งŽ์€ CI ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ด์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€ ์‹œํ‹ฐ ๋˜๋Š” ๊นƒ๋žฉ CI.

๊ฒฐ๊ณผ์ ์œผ๋กœ Git ์ €์žฅ์†Œ์˜ ์‚ฌ์–‘์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์•„ํ‹ฐํŒฉํŠธ ๋นŒ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ฐœ์ • ๋ฒˆํ˜ธ๋Š” ๋นŒ๋“œ ์‹คํ–‰ ์นด์šดํ„ฐ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ์ข€ ๋” ์žˆ์œผ๋ฉด ๋กœ์ปฌ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ, Nexus, Artifactory ๋“ฑ์œผ๋กœ ์ „์†ก๋˜๋„๋ก ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์ธ ์ด์ ์€ yaml ๊ตฌ์„ฑ ํŒŒ์ผ์„ Ansible ๋˜๋Š” ๋‹ค๋ฅธ ์ž๋™ ๊ตฌ์„ฑ ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฑฐ๊ธฐ์—์„œ ๋ฐฐํฌํ•˜๋ ค๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ์™€ ํŒจํ‚ค์ง€ ์œ ํ˜•์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„์ง ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ๊ตฌ์„ฑ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์žฅํ•˜๋Š” ๋™์‹œ์— ๊ฐ€๋Šฅํ•œ ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ๋งŒ ํ•„์š”ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ํ•ฉํ•˜๋‹ค๋ฉด ์ฒœ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ปดํŒŒ์ผ ํ”Œ๋ž˜๊ทธ(์ด์ œ ๋‚ด๋ถ€ ๊ตฌ์„ฑ ํŒŒ์ผ src/config.py์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ), ์„ค์น˜ ๊ฒฝ๋กœ ๋ฐ ์‹œ์ž‘ ์‚ฌ์šฉ์ž๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ์— ํŒจํ‚ค์ง€๋ฅผ ์ž๋™์œผ๋กœ ๋ณด๋‚ด๋Š” ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•  ๋•Œ ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: github.com/nginx-modules/nginx_upstream_check_module ๋จผ์ € ํŠน์ • ๋ฒ„์ „์˜ ํŒจ์น˜๋ฅผ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค)
  • ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€:
    • ํŒจํ‚ค์ง€๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • Nginx์—๋Š” ํ•„์ˆ˜ ๋ฒ„์ „์ด ์žˆ์œผ๋ฉฐ ํ•„์ˆ˜ ํ”Œ๋ž˜๊ทธ ๋ฐ ๋ชจ๋“ˆ๋กœ ๋นŒ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ•„์š”ํ•œ ๊ฒฝ๋กœ, ๊ณ„์ • ๋“ฑ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์ œ ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ œ์•ˆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. github.com/TinkoffCreditSystems/Nginx-builder ์–ด์„œ ์˜ค์„ธ์š”!

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€