Web Server์ WAS์ ์ฐจ์ด
์๋ก
์น ์๋ฒ(Web Server)์ ์น ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ(Web Application Server)์ ํค์๋๋ง ๋๊ณ ๋ณด์์ ๋ ๋ ๊ฐ์ ์ฐจ์ด๊ฐ ๋ญ๊ฐ์ ๋ํด ํ์ ์๊ฒ ๋๋ต์ ๋ชปํ ๋ฟ๋๋ฌ ์์ง ์ดํด๊ฐ ์ ๊ฐ์ง ์์์ ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํด ๋ณด๊ฒ ๋์์ต๋๋ค.
์ด๋ฒ ๊ฒ์๊ธ์์๋ ์ ์ ํ์ด์ง(static pages)์ ๋์ ํ์ด์ง(dynamic pages)๋ฅผ ๋จผ์ ์ดํดํ๊ณ , ๊ทธ๋ค์ Web Server์ WAS์ ์ฐจ์ด์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์ ์ ํ์ด์ง(static pages)์ ๋์ ํ์ด์ง(dynamic pages)
- Web Server์ WAS์ ์ฐจ์ด
1. ์ ์ ํ์ด์ง(static pages)์ ๋์ ํ์ด์ง(dynamic pages)
์ฐ๋ฆฌ๊ฐ ๋ณด๋ ์นํ์ด์ง๋ ์์ ์ด๋ฏธ์ง์ฒ๋ผ ์น ์๋ฒ๋ ์ฃผ์(url)๋ฅผ ๊ฐ์ง๊ณ ํต์ ๊ท์น(http)์ ๋ง๊ฒ ์์ฒญํ๋ฉด, ์๋ง์ ๋ด์ฉ(html)์ ์๋ต๋ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ฒ๋ผ ๋จ์ํ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )์ ์น ์๋ฒ๋ก๋ ์ ์ (static)์ธ ํ์ด์ง๋ฐ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค๋ ํ๊ณ๋ฅผ ๊ฐ์ง๋๋ค. ์ด๋ฌํ html์ ํ์์ ์ธ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด application์ ํ์ฉํ ๊ฒ์ด Web Application์
๋๋ค. ๋ฐ๋ผ์ ์ ์ ์ธ html์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ๋์ ์ธ ํ์ด์ง๋ฅผ ์ ๊ณตํ๊ณ ์ ํ๋ ๋ชฉ์ , ๋ ๋์๊ฐ ๋ณด์ ๊ฐํ์ ์ฅ์ ๊ทน๋ณต์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ด WAS์
๋๋ค.
์ ์ ํ์ด์ง์ ๋์ ํ์ด์ง๋ ๋ง ๊ทธ๋๋ก ํ์ด์ง๊ฐ ๋ฐ๋๋๋ ๋ฐ๋์ง ์๋๋์ ์ฐจ์ด์
๋๋ค.
1) Static Pages
- Web Server๋ ํ์ผ ๊ฒฝ๋ก ์ด๋ฆ์ ๋ฐ์ ๊ฒฝ๋ก์ ์ผ์นํ๋ file contents๋ฅผ ๋ฐํํฉ๋๋ค.
- ํญ์ ๋์ผํ ํ์ด์ง๋ฅผ ๋ฐํํฉ๋๋ค.
- html, css, js, image ํ์ผ๊ณผ ๊ฐ์ด ์ปดํจํฐ์ ์ ์ฅ๋์ด ์๋ ํ์ผ๋ค์ ๋๋ค.
2) Dynamic Pages
- ์ธ์์ ๋ด์ฉ์ ๋ง๊ฒ ๋์ ์ธ Contents๋ฅผ ๋ฐํํฉ๋๋ค.
- ์ฆ, ์น ์๋ฒ์ ์ํด์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ํตํด์ ๋ง๋ค์ด์ง ๊ฒฐ๊ณผ๋ฌผ์ ๋๋ค.
- ์๋ ์ด๋ฏธ์ง์์ ๊ฐ๋ฐ์๋ Servlet์ doGet()์ ๊ตฌํํฉ๋๋ค.
2. Web Server์ WAS์ ์ฐจ์ด
1) Web Server
์น ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ HTML ๋ฌธ์๋ ๊ฐ์ข ๋ฆฌ์์ค(Resource)๋ฅผ ์ ๋ฌํ๋ ์ปดํจํฐ์ ๋๋ค.
์์ฒญ์ ๋ฐ๋ผ ์๋์ ๋ ๊ฐ์ง ๊ธฐ๋ฅ ์ค ์ ์ ํ๊ฒ ์ ํํ์ฌ ์ํํฉ๋๋ค.
๊ธฐ๋ฅ 1 | - ์ ์ ์ธ ์ปจํ
์ธ ๋ฅผ ์ ๊ณตํ๋ค. - WAS๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์์ ์ ๊ณตํ๋ค. |
๊ธฐ๋ฅ 2 | - ๋์ ์ธ ์ปจํ
์ธ ์ ๊ณต์ ์ํ ์์ฒญ์ ์ ๋ฌํ๋ค. - ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)์ WAS์ ๋ณด๋ด๊ณ , WAS๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ(์๋ต, Response)ํ๋ค. - ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ฏธํ๋ค. |
Web Server์๋ Apache Server์ NginX๊ฐ ์๋๋ฐ ๊ฐ๊ฐ์ ํน์ฑ์ ์๋์ ๊ฐ์ต๋๋ค.
- Apache Server: BSD, Linux ๋ฑ Unix๊ณ์ด๋ฟ ์๋๋ผ Windows์ ๊ฐ์ ๊ธฐ์ข ์์๋ ์ด์ฉ ๊ฐ๋ฅ.
- NginX: ๊ฐ๋ฒผ์๊ณผ ๋์ ์ฑ๋ฅ์ ๋ชฉํ๋ก ํจ, ์น ์๋ฒ, ๋ฆฌํผ์ค ํ๋ก์ ๋ฐ ๋ฉ์ผ ํ๋ก์ ๊ธฐ๋ฅ์ ๊ฐ์ง.
Apache Tomcat์ด๋ผ๊ณ ํ๋ ์ด์
- ์น์๋ฒ๋ Apache, WAS๋ Tomcat
- 2008๋ ์ ๋ฆด๋ฆฌ์ฆ๋ Tomcat 5.5 ๋ถํฐ ์ ์ ์ปจํ ์ธ ์ฒ๋ฆฌ๊ธฐ๋ฅ ์ถ๊ฐ
-> ์์ Apache๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ๋นํด ์ฑ๋ฅ ์ฐจ์ด ์์
-> Tomcat์ด Apache์ ๊ธฐ๋ฅ์ ํฌํจํ๋ฏ๋ก Apache Tomcat์ด๋ผ๊ณ ํจ
2) Web Application Server, WAS
WAS๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ํ๊ฒฝ์ ๋ง๋ค์ด ๋์์ํค๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ํํธ์จ์ด ๋ฏธ๋ค์จ์ด ํ๋ ์์ํฌ์ ๋๋ค.
์ ์ด๋ฏธ์ง์ ๊ฐ์ด WAS๋ Web Server์ Web Container(JSP, Servlet)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. Web Server์์ ์ฐจ์ด์ ์ Web Container๋ฅผ ๊ฐ์ง๋ค๋ ์ ์ด๋ฉฐ WAS๋ HTML ๊ฐ์ ์ ์ ์ธ ํ์ด์ง์์ ์ฒ๋ฆฌํ ์ ์๋ ๋น์ฆ๋์ค ๋ก์ง์ด๋ DB ์กฐํ ๊ฐ์ ๋์ ์ธ ์ฝํ
์ธ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ด WAS์ Web Server๋ฅผ ๋ถ๋ฆฌํ ํํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋ถ๋ฆฌ๋ฅผ ํ๋ฉด ์๊ธฐ๋ ์ฅ์ ์ด ๋ฌด์์ผ๊น์?
1. ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์๋ฒ ๋ถํ ๋ฐฉ์ง ๊ฐ๋ฅ
- WAS๋ DB ์กฐํ ๋ฑ ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๋ค์ํ ๋ก์ง์ ์ฒ๋ฆฌํ๋๋ฐ, ๋จ์ํ ์ ์ ์ฝํ ์ธ ๋ฅผ WAS์์ ์ ๊ณตํ๋ค๋ฉด ๋ค๋ฅธ ์์ ์ ์ฌ์ฉํ๋ ๋ฆฌ์์ค๋ค๋ก ์ธํด ์ง์ฐ์ด ์๊ฒจ๋ ์ ์๋ค.
- tomcat 5.5 ์ด์๋ถํฐ๋ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋จ์ด์ง์ง ์๋๋ค๊ณ ํ๋ค.
2. ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๋ณด์ ๊ฐํ
- SSL์ ๋ํ ์๋ณตํธํ ์ฒ๋ฆฌ์ Web Server๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ณต๊ฒฉ์ ๋ํด Web Server๋ฅผ ์๋จ์ ๋์ด ์ค์ํ ์ ๋ณด๊ฐ ๋ด๊ธด DB๋ ๋ก์ง๊น์ง(WAS๊น์ง) ์ ํ๋์ง ๋ชปํ๊ฒ ํ๋ค.
3. ์ฌ๋ฌ ๋์ WAS๋ฅผ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค.
- Load Balancing(๋ถํ์ ๊ท ๋ฑํ) ๊ฐ๋ฅ -> ํ ์๋ฒ๊ฐ ๋ค์ด๋๋๋ผ๋ ์๋น์ค๋ฅผ ์ด์ด๊ฐ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
- fail over(์ฅ์ ๊ทน๋ณต), fail back ๊ฐ๋ฅ
- ๋์ฉ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ(์ฌ๋ฌ ๊ฐ์ ์๋ฒ ์ฌ์ฉ) Wev Server์ WAS๋ฅผ ๋ถ๋ฆฌํ์ฌ ๋ฌด์ค๋จ ์ด์์ ์ํ ์ฅ์ ๊ทน๋ณต์ ์ฝ๊ฒ ๋์ํ ์ ์๋ค.
4. ๋ค๋ฅธ ์ข
๋ฅ์ WAS๋ก ์๋น์ค ๊ฐ๋ฅ
ํ๋์ ์๋ฒ์์ PHP Apllication๊ณผ Java Application์ ํจ๊ป ์์ฉ ๊ฐ๋ฅ