Apache2 ์„ฑ๋Šฅ ์ตœ์ ํ™”

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด apache2๋ฅผ ์›น ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์ดํŠธ ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„, ์Šคํฌ๋ฆฝํŠธ ์ฒ˜๋ฆฌ ์†๋„(ํŠนํžˆ PHP), CPU ๋ถ€ํ•˜ ์ฆ๊ฐ€ ๋ฐ ์‚ฌ์šฉ๋˜๋Š” RAM ์–‘ ์ฆ๊ฐ€์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‹ค์Œ ๋งค๋‰ด์–ผ์€ ์ดˆ๋ณด์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์•„๋ž˜์˜ ๋ชจ๋“  ์˜ˆ์ œ๋Š” Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3์—์„œ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ะ˜ั‚ะฐะบ, ะฝะฐั‡ะฝะตะผ.

1. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“ˆ ๋น„ํ™œ์„ฑํ™”

์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“ˆ์„ ๊ฐ„๋‹จํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ ๋ชฉ๋ก์€ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

apache2ctl -M

๋ชจ๋“ˆ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

a2dismod *ะฝะฐะทะฒะฐะฝะธะต ะผะพะดัƒะปั*

๋”ฐ๋ผ์„œ ๋ชจ๋“ˆ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

a2enmod *ะฝะฐะทะฒะฐะฝะธะต ะผะพะดัƒะปั*

์ด์šฉ์‹œ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” a2dismod, ๋ชจ๋“ˆ ์ด๋ฆ„์€ ๋ชจ๋“ˆ ์ž์ฒด๋ผ๋Š” ๋‹จ์–ด ์—†์ด ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ช…๋ น์˜ ์ถœ๋ ฅ์— ์žˆ๋Š” ๊ฒฝ์šฐ apache2ctl -M ๋ณธ ํ”„๋ก์‹œ ๋ชจ๋“ˆ, ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. a2dismod ํ”„๋ก์‹œ

(๊ฐœ์ธ ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด) ์‹œ์Šคํ…œ์„ ๊ฐ€์žฅ ๋งŽ์ด ๋กœ๋“œํ•˜๋Š” ๋ชจ๋“ˆ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • PHP, Ruby, Perl ๋ฐ ๋‹ค์–‘ํ•œ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋ฅผ ์œ„ํ•œ ๊ธฐํƒ€ ๋ชจ๋“ˆ
  • SSL
  • ๊ณ ์ณ ์“ฐ๊ธฐ
  • CGI

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ชจ๋“ˆ์„ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. apache2ctl ๊ตฌ์„ฑ ํ…Œ์ŠคํŠธ, ์‚ฌ์šฉ๋œ ์‚ฌ์ดํŠธ์˜ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ๋น„ํ™œ์„ฑํ™”๋œ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

2. MPM(Multi-Processing Module) ๋ณ€๊ฒฝ ๋ฐ php-fpm ์‚ฌ์šฉ

๊ธฐ๋ณธ์ ์œผ๋กœ apache2๋Š” ์„ค์น˜ ํ›„ MPM Prefork(์—ฐ๊ฒฐ 1๊ฐœ๋‹น ์Šค๋ ˆ๋“œ 1๊ฐœ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ €ํ•˜๋˜์ง€๋งŒ ๋™์‹œ์— ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ๋‹น ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” MPM Worker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

a2dismod mpm_prefork  //ะžั‚ะบะปัŽั‡ะฐะตะผ prefork
a2dismod php7.3  //ะžั‚ะบะปัŽั‡ะฐะตะผ ะผะพะดัƒะปัŒ php, ะบะพั‚ะพั€ั‹ะน ะทะฐะฒะธัะธั‚ ะพั‚ prefork
a2enmod mpm_worker  //ะ’ะบะปัŽั‡ะฐะตะผ worker

๊ทธ๋Ÿฌ๋‚˜ Worker๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. php7.3 ๋ชจ๋“ˆ์€ Prefork ๋ชจ๋“ˆ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PHP ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” php7.3-fpm ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

apt-get update && apt-get install php7.3-fpm  //ะฃัั‚ะฐะฝะฐะฒะปะธะฒะฐะตะผ
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  //ะ”ะพะฑะฐะฒะปัะตะผ ะฒ ะฐะฒั‚ะพะทะฐะณั€ัƒะทะบัƒ ะธ ะทะฐะฟัƒัะบะฐะตะผ
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  //ะ’ะบะปัŽั‡ะฐะตะผ ะผะพะดัƒะปัŒ ะธ ะบะพะฝั„ะธะณ ะดะปั ะฝะตะณะพ

php-fpm์„ ์‚ฌ์šฉํ•˜๋ฉด apache2 ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” RAM์˜ ์–‘์ด ์ค„์–ด๋“ค๊ณ  PHP ์Šคํฌ๋ฆฝํŠธ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ์•ฝ๊ฐ„ ๋นจ๋ผ์ง„๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๊ฒฐ๋ก 

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค(์ด ๊ฒฝ์šฐ RPI3).

๋ฌผ๋ก  ์••์ถ• ํ™œ์„ฑํ™”(์ •๋ง ์œ ์šฉํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ์ด๋ฏธ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Œ), MPM ์„ค์ •(๊ตฌ์„ฑ ํŒŒ์ผ) ๋ณ€๊ฒฝ, HostnameLookups ๋น„ํ™œ์„ฑํ™” ๋“ฑ๊ณผ ๊ฐ™์€ ์ˆ˜๋ฐฑ ๊ฐ€์ง€์˜ ๋‹ค๋ฅธ ์ตœ์ ํ™” ์˜ต์…˜์ด ์žˆ์ง€๋งŒ ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ฐ˜์˜ํ•˜๊ธฐ ์ €์—๊ฒŒ ๊ฐ€์žฅ ๋„์›€์ด ๋˜์—ˆ๋˜ ์ ๋“ค์ด๊ณ , ๋‹ค๋ฅธ ๋ถ„๋“ค์—๊ฒŒ๋„ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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