์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
Apache์์ ๋์ด์ด
1. ๊ฐ์[ํธ์ง]
Apache HTTP Server์ ๋ก๊ณ |
Apache HTTP Server์ ์ญ์ฌ | ||
ํ์ฌ ๋ฒ์ | 2.4.41(2019๋
8์ 14์ผ) | |
๋ฒ์ | ๊ณต๊ฐ์ผ | |
Apache |
| 1998๋
6์ 6์ผ |
Apache 2 | 2.0 | 2002๋
4์ 6์ผ |
2.2 | 2005๋
12์ 1์ผ | |
2.4 | 2012๋
2์ 21์ผ | |
Apache HTTP Server๋ ์คํ ์์ค ์ํํธ์จ์ด ๊ทธ๋ฃน์ธ ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๋ง๋๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ด๋ค. ํ ๋ฒ๋์ค ๋ฆฌ๊ฐ ๋ง๋ ์ต์ด์ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ธ "NCSA HTTPd"๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค.
ํ ๋ฒ๋์ค ๋ฆฌ์ NCSA HTTPd๋ ์ ๋์ค ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ์, ์ํ์น HTTP ์๋ฒ๋ NCSA HTTPd๋ฅผ ๋ฆฌ๋ ์ค์์๋ ๋๋ฆฌ๋ ๊ฒ์ ๋ชฉํ๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ด๋ค. ๊ทธ ์ดํ ๋ฆฌ๋ ์ค์ ํจ๊ป ํผ์ ธ๋๊ฐ๊ณ , ๋ฆฌ๋ ์ค๊ฐ ์๋ฒ OS์ ์ต๋ค ์ ์ ์จ์ ์ฐจ์งํ์ ์ํ์น๋ ์์ฐ์ค๋ฝ๊ฒ ์ต๋ค ์ ์ ์จ์ ์ฐจ์งํ๊ฒ ๋์๋ค. ํ์ฌ ๊ฑฐ์ ๋ชจ๋ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์ด ์ด ์ํ์น๋ฅผ ์ง์ํ๋ค.
ํ ๋ฒ๋์ค ๋ฆฌ์ NCSA HTTPd๋ ์ ๋์ค ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ์, ์ํ์น HTTP ์๋ฒ๋ NCSA HTTPd๋ฅผ ๋ฆฌ๋ ์ค์์๋ ๋๋ฆฌ๋ ๊ฒ์ ๋ชฉํ๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ด๋ค. ๊ทธ ์ดํ ๋ฆฌ๋ ์ค์ ํจ๊ป ํผ์ ธ๋๊ฐ๊ณ , ๋ฆฌ๋ ์ค๊ฐ ์๋ฒ OS์ ์ต๋ค ์ ์ ์จ์ ์ฐจ์งํ์ ์ํ์น๋ ์์ฐ์ค๋ฝ๊ฒ ์ต๋ค ์ ์ ์จ์ ์ฐจ์งํ๊ฒ ๋์๋ค. ํ์ฌ ๊ฑฐ์ ๋ชจ๋ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์ด ์ด ์ํ์น๋ฅผ ์ง์ํ๋ค.
2. ์์ธ[ํธ์ง]
์ํ์น๋ ํ์ฅ์ฑ์ด ์๋นํ ์ข์๋ฐ, ๋ชจ๋์ด๋ผ๋ ๊ฐ๋
์ผ๋ก ์๋ง์ ๊ธฐ๋ฅ์ ๋ง๋ถ์ผ ์ ์๋ค. ์ด ๋ชจ๋์ ํตํด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๊ณผ์ ์ฐ๋๋ ๊ฐ๋ฅํ๋ค. ์ด ๋๋ฌธ์ ์ฌ๋ฌ๊ฐ์ง ์๋ฒ ์ฌ์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ DBMS์๋ ๊ถํฉ์ด ์ ๋ง์๋๋ฐ, ์ด์ฐฝ๊ธฐ์๋ Perl์ด ๋์ธ์๊ณ , PHP๊ฐ ๊ทธ ๋ค๋ฅผ ์ด์๋ค. ๋ฐ๋ก PHP ๋ชจ๋์ ํตํด PHP๋ฅผ ์คํํ ์๋ ์์ง๋ง, ์ฃผ๋ก ์๋ ํฅ์์ ์ํด PHP-FPM์ ํตํด PHP๋ฅผ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ๋ค. ์ข ๋ ๊ณ ์ฑ๋ฅ์ ์ํ๋ ์ฌ๋์ HHVM์ ์ด๋ค.[1] ๊ทธ๋ฆฌ๊ณ ์คํ์์ค DBMS์ธ MySQL์ด ๋์ค์, Apache+PHP+MySQL์ ํตํ์ด "APM"์ด๋ผ๊ณ ํต์นญํ๋ฉด์ ์น ์๋ฒ๋ฅผ ๋๋ฆฌ๊ธฐ ์ํ ๊ธฐ๋ณธ 3์ข
์ธํธ ๋น์ค๋ฌด๋ ํ๊ฒ ๋์๋ค. ๋ฌผ๋ก ๋ค๋ฅธ ์ธ์ด์ ๋ค๋ฅธ DBMS๋ ์ง์ํ์ง๋ง, ์ ์กฐํฉ์ด ๊ฐ์ฅ ์ธ์ง๋๊ฐ ๋๋ค. JSP์ ๊ฒฝ์ฐ์๋ ์ค์ ์ด ์กฐ๊ธ ๊ท์ฐฎ์์ง์ง๋ง ํฐ์บฃ๊ณผ ์ฐ๋ํ์ฌ ๋๋ฆด ์ ์๋ค.
๋ผ์ด์ ์ค๋ GPL์ด ์๋ ์์ฒด ๋ผ์ด์ ์ค๋ฅผ ์ด๋ค. ์ํ์น ๋ผ์ด์ ์ค 2.0์ ๋ฐ๋ฅด๋๋ฐ, ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๋ง๋ค์๋ค๋ ์ฌ์ค์ ๋ฐํ๊ณ ์ํ์น ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฅด๋ฉด ์์ ๋กญ๊ฒ ์์ ๋ฐ ์ฌ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์์ค ๊ณต๊ฐ ๊ฐ์ ์ฌํญ๋ ์๋ ์์ ๋ก์ด ๋ผ์ด์ ์ค๋ค.
๊ทธ๋ฌ๋ 2.2 ๋ฒ์ ๋์์ ๋๋ฌด ๋ฌด๊ฒ๋ค๋ ํ์ด ๋ง์์ก๊ณ , ๋น ๋ฅธ ์๋๋ฅผ ๋ด์ธ์ด NGINX๋ผ๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ด ์๋ก ๋์ค๋ฉด์ ์ํ์น์ ์๊ธฐ๊ฐ ์๋ค. ์ํ์น๋ Event MPM์ ํ์ฌํ์ฌ ์๋๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ 2.4 ๋ฒ์ ์ ๋ด๋์ผ๋ฉด์ ์ฌ๊ธฐ์ ๋์ํ๊ณ ์๋ค.
๊ธฐ๋ฅ์ด ๋งค์ฐ ๋ง์ ์น์๋ฒ์ด์ง๋ง ๊ทธ ๊ธฐ๋ฅ์ ๋ค ํ์ฉํ๋ ์ฌ๋์ด ๋๋ฌธ ๊ทธ๋ฐ ํ๋ก๊ทธ๋จ์ด๋ค. ํ์ฅ ๋ชจ๋์ด ๋งค์ฐ ๋ค์ํ์ฌ ๊ฐ๋จํ๊ฒ ์ค์นํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ๋๋ถ๋ถ์ ์ฌ๋์ ์ด ํ๋ก๊ทธ๋จ๊ณผ PHP, MySQL๋ง ์ค์นํ๊ณ ๋๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ธฐ๋ฅ๋ค์ NGINX์๋ ๊ทธ๋๋ก ์กด์ฌํ๊ณ , ๋ ๋น ๋ฅด๋ค. ํธํ์ฑ์ ํ์ธํ๊ณ ์ฎ๊ธธ ์ ์์ผ๋ฉด ์ฎ๊ธฐ๋ ๊ฒ ์ข๋ค.
์๋์ฐ์ฉ๋ ๋์จ๋ค. ์๋์ฐ์๋ XAMPP๋ APMSetup ๋ฑ์ ์ํ์น ์น ์๋ฒ+PHP+MySQL์ ํธ๋ฆฌํ๊ฒ ํตํฉํด ์ค์นํ ์ ์๋ ํจํค์ง๊ฐ ๋์ ์๋ค. ์ ๋ค ์๋์ฐ์ฉ์ด ๋์ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ. ๊ทธ๋ฌ๋ ์๋ฌด๋๋ ๋ฆฌ๋ ์ค/์ ๋์ค ๋ฒ ์ด์ค๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ด๋ค๋ณด๋ ์๋์ฐ์์๋ ์ ์๋๊ฐ ๋์ค์ง ์๋๋ค. ์๋์ฐ ๋ฒ์ ์ ์๋ฒ ์ ๋ฌธ์์ ๋๋ฒ๊น ํ๊ฒฝ ๊ตฌ์ถ์ฉ ํน์ PHP+MySQL ์ฐ์ต์ฉ ์ ๋๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ๊ฑฐ๊ธฐ๋ค ์๋์ฐ ์๋ฒ์๋ MS๊ฐ ์์ฒด์ ์ผ๋ก ๋ง๋ ์ธํฐ๋ท ์ ๋ณด ์๋น์ค(IIS)๊ฐ ์๊ธฐ ๋๋ฌธ์, IIS์ FastCGI ๋ชจ๋๋ก PHP๋ฅผ ์ฐ๊ฒฐ์์ผ์ ๋๋ฆฌ๋ ๊ฒ์ด ๋ณดํต์ด๋ค. ์ด ๋๋ฌธ์ PHP์ ์๋์ฐ ๋ฒ์ ์ IIS์ฉ๊ณผ Apache/NGINX์ฉ์ด ๋ฐ๋ก ๋์จ๋ค.
2017๋ 10์ ๊ธฐ์ค์ผ๋ก ์ค์ง์ ์ผ๋ก ์๋ํ๋ ์น ์ฌ์ดํธ(active site)๋ค์์ ์ฐ์ด๋ ์น ์๋ฒ ์ํํธ์จ์ด ์์๋ ์ํ์น HTTP ์๋ฒ(44.89%), ์์ง์์ค(20.65%), ๊ตฌ๊ธ ์น ์๋ฒ(7.86%), MS ์ธํฐ๋ท ์ ๋ณด ์๋น์ค(7.32%) ์์ด๋ค.[2]
๋ผ์ด์ ์ค๋ GPL์ด ์๋ ์์ฒด ๋ผ์ด์ ์ค๋ฅผ ์ด๋ค. ์ํ์น ๋ผ์ด์ ์ค 2.0์ ๋ฐ๋ฅด๋๋ฐ, ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๋ง๋ค์๋ค๋ ์ฌ์ค์ ๋ฐํ๊ณ ์ํ์น ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฅด๋ฉด ์์ ๋กญ๊ฒ ์์ ๋ฐ ์ฌ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์์ค ๊ณต๊ฐ ๊ฐ์ ์ฌํญ๋ ์๋ ์์ ๋ก์ด ๋ผ์ด์ ์ค๋ค.
๊ทธ๋ฌ๋ 2.2 ๋ฒ์ ๋์์ ๋๋ฌด ๋ฌด๊ฒ๋ค๋ ํ์ด ๋ง์์ก๊ณ , ๋น ๋ฅธ ์๋๋ฅผ ๋ด์ธ์ด NGINX๋ผ๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ด ์๋ก ๋์ค๋ฉด์ ์ํ์น์ ์๊ธฐ๊ฐ ์๋ค. ์ํ์น๋ Event MPM์ ํ์ฌํ์ฌ ์๋๋ฅผ ํฌ๊ฒ ๊ฐ์ ํ 2.4 ๋ฒ์ ์ ๋ด๋์ผ๋ฉด์ ์ฌ๊ธฐ์ ๋์ํ๊ณ ์๋ค.
๊ธฐ๋ฅ์ด ๋งค์ฐ ๋ง์ ์น์๋ฒ์ด์ง๋ง ๊ทธ ๊ธฐ๋ฅ์ ๋ค ํ์ฉํ๋ ์ฌ๋์ด ๋๋ฌธ ๊ทธ๋ฐ ํ๋ก๊ทธ๋จ์ด๋ค. ํ์ฅ ๋ชจ๋์ด ๋งค์ฐ ๋ค์ํ์ฌ ๊ฐ๋จํ๊ฒ ์ค์นํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ๋๋ถ๋ถ์ ์ฌ๋์ ์ด ํ๋ก๊ทธ๋จ๊ณผ PHP, MySQL๋ง ์ค์นํ๊ณ ๋๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ธฐ๋ฅ๋ค์ NGINX์๋ ๊ทธ๋๋ก ์กด์ฌํ๊ณ , ๋ ๋น ๋ฅด๋ค. ํธํ์ฑ์ ํ์ธํ๊ณ ์ฎ๊ธธ ์ ์์ผ๋ฉด ์ฎ๊ธฐ๋ ๊ฒ ์ข๋ค.
์๋์ฐ์ฉ๋ ๋์จ๋ค. ์๋์ฐ์๋ XAMPP๋ APMSetup ๋ฑ์ ์ํ์น ์น ์๋ฒ+PHP+MySQL์ ํธ๋ฆฌํ๊ฒ ํตํฉํด ์ค์นํ ์ ์๋ ํจํค์ง๊ฐ ๋์ ์๋ค. ์ ๋ค ์๋์ฐ์ฉ์ด ๋์ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ. ๊ทธ๋ฌ๋ ์๋ฌด๋๋ ๋ฆฌ๋ ์ค/์ ๋์ค ๋ฒ ์ด์ค๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ด๋ค๋ณด๋ ์๋์ฐ์์๋ ์ ์๋๊ฐ ๋์ค์ง ์๋๋ค. ์๋์ฐ ๋ฒ์ ์ ์๋ฒ ์ ๋ฌธ์์ ๋๋ฒ๊น ํ๊ฒฝ ๊ตฌ์ถ์ฉ ํน์ PHP+MySQL ์ฐ์ต์ฉ ์ ๋๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ๊ฑฐ๊ธฐ๋ค ์๋์ฐ ์๋ฒ์๋ MS๊ฐ ์์ฒด์ ์ผ๋ก ๋ง๋ ์ธํฐ๋ท ์ ๋ณด ์๋น์ค(IIS)๊ฐ ์๊ธฐ ๋๋ฌธ์, IIS์ FastCGI ๋ชจ๋๋ก PHP๋ฅผ ์ฐ๊ฒฐ์์ผ์ ๋๋ฆฌ๋ ๊ฒ์ด ๋ณดํต์ด๋ค. ์ด ๋๋ฌธ์ PHP์ ์๋์ฐ ๋ฒ์ ์ IIS์ฉ๊ณผ Apache/NGINX์ฉ์ด ๋ฐ๋ก ๋์จ๋ค.
2017๋ 10์ ๊ธฐ์ค์ผ๋ก ์ค์ง์ ์ผ๋ก ์๋ํ๋ ์น ์ฌ์ดํธ(active site)๋ค์์ ์ฐ์ด๋ ์น ์๋ฒ ์ํํธ์จ์ด ์์๋ ์ํ์น HTTP ์๋ฒ(44.89%), ์์ง์์ค(20.65%), ๊ตฌ๊ธ ์น ์๋ฒ(7.86%), MS ์ธํฐ๋ท ์ ๋ณด ์๋น์ค(7.32%) ์์ด๋ค.[2]
[1] ํ์ง๋ง PHP 7์ด ๋ฐํ๋๋ฉด์ ์๋ ๋ฉด์์ HHVM์ ๊ฐ๋ ฅํ ์ ์๋ฅผ ๋ง๋๊ฒ ๋์๋ค.