Web Server ์ WAS ๋ฅผ ์์๋ณด์
๋ชฉ์ฐจ
1. Static Page, Dynamic Page ๋?
2. Web Server์ ๊ฐ๋ ๊ณผ ์ญํ
3. WAS (Web Application Server)์ ๊ฐ๋ ๊ณผ ์ญํ
4. Web Server์ WAS๋ฅผ ๊ตฌ๋ถํ๋ ์ด์
1. Static Page, Dynamic Page ๋?
๋ธ๋ผ์ฐ์ ๋ ์ ์ ์ปจํ ์ธ ์ ๋์ ์ฝํ ์ธ ๊ฐ ๋ชจ๋ ์กด์ฌํ๋ค.
๋ ์ปจํ ์ธ ์ ๊ฐ๋ ๊ณผ ์ฐจ์ด๋ฅผ ์์๋ณด์.
1 - 1. ์ ์ ์ฝํ ์ธ , static pages
์ ์ ์ปจํ ์ธ ๋ ์๋ฒ์ ์ ์ฅ๋, ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋์ผํ๊ฒ ์ ๋ฌ๋๋ ํ์ผ์ ๋ชจ๋ ์ผ์ปซ๋๋ค.
์๋ฒ๋ ํ์ผ ๊ฒฝ๋ก ์ด๋ฆ์ ์์ ๋ฐ๊ณ , ๊ฒฝ๋ก์ ์ผ์นํ๋ File Contents๋ฅผ ์ก์ ํ๋ค. ์ฆ ๋์ผํ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์์ ๋ฐ์ผ๋ฉด, ๋์ผํ ํ์ด์ง(file contents)๋ฅผ ๋ฐํํ๋ค. ์ด๋ฅผ ์ ์ ํ์ด์ง(Static Pages)๋ผ ๋ถ๋ฅธ๋ค.
ex) image, html, css, js ์ฒ๋ผ ์ปดํจํฐ์ ์ ์ฅ๋ ํ์ผ
์๋ ์ด๋ฏธ์ง์ฒ๋ผ, ์ฑ๊ฐํด์ ์ฌ๋ ์จ๋ฆฌ์ค๊ฐ ๋ณด๋ ํ๋ฉด๊ณผ ๋ฐ๋์ ์ฌ๋ ๋ฐฅ์ด ๋ณด๋ ํ๋ฉด์ ๋์ผํ๋ค. ํ๊ตญ์ ์ฌ๋ ์ฑํ๊ฐ ๋ณด๋ ํ๋ฉด๋ ๋์ผํ ๊ฒ์ด๋ค. ๋์ผํ ํ์ผ ๊ฒฝ๋ก๋ก ์ ์ํ๊ธฐ์, ๋์ผํ ํ์ด์ง๋ฅผ ๋ฐํ๋ฐ๋ ์ ์ ์ธ(static) ํ๋ฉด์ด๋ค.
1 - 2. ๋์ ์ปจํ ์ธ , dynamic pages
๋์ ์ปจํ ์ธ ๋ ์์ฒญ๋ฐ์ ์ธ์์ ๋ด์ฉ์ ๋ง์ถฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ์ฝํ ์ธ ๋ฅผ ์๋ฏธํ๋ค.
์์ ๋ฌ๋ฆฌ, ์จ๋ฆฌ์ค์ ๋ฐฅ์ด ๋ณด๋ ํ๋ฉด์ ์๋ก ๋ค๋ฅด๋ค. ํ๊ตญ์ ์ฌ๋ ๋ด์ฃผ์๊ฒ ๋ณด์ด๋ ํ๋ฉด ์ญ์ ๋ค๋ฅผ ๊ฒ์ด๋ค. ์ฆ ๋์ผํ ๊ฒฝ๋ก๋ก ์ ๊ทผํ ์ง๋ผ๋, ๋ธ๋ผ์ฐ์ ์ ์ ์ ์์น ๋ฑ์ ์์ธ์ผ๋ก ๋ ๋๋ง ๋๋ ์ฝํ ์ธ ๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
2. Web Server ์ ๊ฐ๋ ๊ณผ ์ญํ
2 - 1. ๊ฐ๋
hardware / software ๋ ๊ฐ์ง ์ธก๋ฉด์์ ์๊ฐํ ์ ์๋ค.
1) Hardware
Web Server ์ํํธ์จ์ด์ website์ ์ปดํฌ๋ํธ ํ์ผ์ด ์ ์ฅ๋ ์ปดํจํฐ๋ฅผ ์๋ฏธํ๋ค.
2) Software
ํด๋ผ์ด์ธํธ(ex. browser)๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ Static Pages (html, css, images etc)๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธ
์น๊ฐ๋ฐ์๊ฐ ํํ ์๊ธฐํ๋ web server ๋ ์ฌ๊ธฐ์ software ์ธก๋ฉด์ ๋ ๊ฐ๊น๋ค๊ณ ์๊ฐํ๋ค.
2 - 2. ์ญํ
Http ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ์ ํ ์๋ตํ๋ค.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์๋ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ํ์ ์ผ๋ก ์ํํ๋ค.
1) ์ ์ ์ธ ์ปจํ ์ธ ์ ๊ณต
WAS๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์์ ์ ๊ณตํ๋ค. ์์์ ์ธ๊ธํ ์ ์ ์ฝํ ์ธ ์ ๊ณต์ ๋ฐ๋ก Web server์์ ๋ด๋นํ๋ค.
2) ๋์ ์ธ ์ปจํ ์ธ ์ ๊ณต
Web Server ๋ ํด๋ผ์ด์ธํธ์ ๋์ ์์ฒญ์ WAS๋ก ๋ณด๋ด๊ณ , WAS ๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ค.
์ฆ ๋์ ์ธ ์์ฒญ๋ web server๋ฅผ ๊ฑฐ์ณ๊ฐ๊ธด ํ๋ค. ๋ค๋ง ๊ทธ์ ์๋ตํ๋ ์ฝํ ์ธ ๋ฅผ WAS์์ ๋ง๋ค์ด ๋ผ ๋ฟ์ด๋ค.
Web Server ์ ๋ํ์ ์ธ ์์๋ก Apache Server์ Nginx ๊ฐ ์๋ค. ์ด์ค Nginx๋ฅผ Web Server๋ก ์ฌ์ฉํ์ฌ Reverse Proxy ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋๋ฐ, ์ด์ ๊ดํด์ ์๋์์ ์ถ๊ฐ ์ค๋ช ํ๊ฒ ๋ค. ํน์ ๐ํด๋น ๋งํฌ๋ฅผ ์ฐธ์กฐํด๋ ์ข๋ค.
์ ๋ฆฌ
Web Server ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ์ ์ ์ ์ฝํ ์ธ ๋ฅผ ๋ฐํํ๋ค.
3. WAS (Web Application Server)์ ๊ฐ๋ ๊ณผ ์ญํ
3 - 1. ๊ฐ๋
Web server ๋ฅผ ํฌํจํ๋ ๊ฐ๋ ์ผ๋ก, ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์ฝํ ์ธ ์ ๊ณต์ ์ํด ๋ง๋ค์ด์ง (Web) Application Server.
Web Server ์ WAS๋ฅผ ์ ํ ๋ค๋ฅธ ์กด์ฌ๋ก ๋ณด๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์๋ค. WAS๋ Web server์ ๊ธฐ๋ฅ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ ๋ชฉ์ ์ผ๋ก ์ ์๋๋ค. Web Server ์์ DB ์กฐํ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ๋ด๋นํ๊ธฐ์ ๋ถํ๊ฐ ์ปค์ง๋ฏ๋ก, WAS์์ ํด๋น ์์ ์ ๊ฐ์ ธ์ ๋ด๋นํ๋ค๊ณ ์๊ฐํ ์ ์๋ค.
WAS๋ Web Server + Web Container๋ฅผ ํฌํจํ๋ ํํ๋ก, ์๋์์ Web Container ๋ ๋ฌด์์ธ์ง ๋ ์์๋ณด์.
3 - 2. ์ญํ
WAS๋ "์น ์ปจํ ์ด๋ / ์๋ธ๋ฆฟ ์ปจํ ์ด๋"๋ก ๋ถ๋ฆฌ๋ฉฐ, JSP์ Servlet ๊ตฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ๊ฐ๋จํ ์๋ธ๋ฆฟ์ ๋ชจ์๋ ๋ฐ์ค ์ ๋๋ก ์๊ฐํ ์ ์๋ค.
Q. ์ฌ๊ธฐ์ ์ ๊น, ์๋ธ๋ฆฟ์ด๋?
A. Dynamic Web Page ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ๋๋ ์๋ฐ ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์๋ฏธํ๋ค.
๋์ ํ์ด์ง๋ฅผ ์์ฑํ ๋ ๋ค์ํ ์์ฒญ/์๋ต์ด ์๊ณ , ์ด ์์ฒญ๊ณผ ์๋ต์๋ ๊ท์น์ด ์กด์ฌํ๋ค.
์๋ํ๋ฉด ์๋ง์ ์์ฒญ๊ณผ ์๋ต์ ์๋ฌด๋ฐ ๊ท์น ์์ด ์ผ์ผ์ด ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ธ๋ฆฟ์ ์น ์์ฒญ๊ณผ ์๋ต์ ํ๋ฆ์ ๊ฐ๋จํ ๋ฉ์๋ ํธ์ถ๋ง์ผ๋ก ์ฒด๊ณ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ ๊ธฐ์ ์ด๋ผ ์๊ฐํ ์ ์๋ค.
๊ณ์ํด์ WAS ์ ์ญํ ,
HTTP ์์ฒญ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๋ ๋ฏธ๋ค์จ์ด๋ก, DB ์กฐํ ๋ฐ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๋์ ์์ฒญ์ ๋ง์ถฐ ๋์ ์ฝํ ์ธ ์ ๊ณตํ๋ค.
+) ์คํ๋ง๋ถํธ๋ Tomcat ์ด๋ผ๋ WAS๋ฅผ ๋ด์ฅํ๊ณ ์๋ค. ์ฆ ํด๋ผ์ด์ธํธ์ ๋ค์ํ ์์ฒญ์ ์๋ตํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ๊ท์น์ ์ง๋ Container๋ฅผ ์คํ๋ง๋ถํธ ๋ด๋ถ์ ํ๊ณ ์๋ ๊ฒ์ด๋ค. ๋์ ์ธ ์์ฒญ์ด ํฐ์บฃ์ ํตํด ๋ค์ด์ค๋ฉด, ์คํ๋ง๋ถํธ์์ DB ์กฐํ ๋ฐ ๋ก์ง ์ฒ๋ฆฌ ํ ํฐ์บฃ์ ๋ค์ ์๋ตํ๋ ๊ตฌ์กฐ๋ค.
์ ๋ฆฌ
1. ํ๋ก๊ทธ๋จ ์คํ ํ๊ฒฝ๊ณผ DB ์ ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ,
2. ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ฉฐ
3. ์ฌ๋ฌ ํธ๋์ญ์ ์ ๊ด๋ฆฌํ ์ ์๋ค. ๋ฌผ๋ก ์ด์ธ์๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค.
4. Web Server ์ WAS๋ฅผ ๊ตฌ๋ถํ๋ ์ด์
4 - 1. Web Server ๊ฐ ํ์ํ ์ด์
ํด๋ผ์ด์ธํธ์ ์ด๋ฏธ์ง ํ์ผ์ ๋ณด๋ด๋ ๊ณผ์ ์ ์๊ฐํด ๋ณด๋ฉด,
1. ์ด๋ฏธ์ง ํ์ผ ๊ฐ์ ์ ์ ํ์ผ์ ์น ๋ฌธ์(HTML)๊ฐ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋ ๋ ํจ๊ป ์๋ต๋์ง ์๋๋ค.
2. ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)๋ HTML ๋ฌธ์๋ฅผ ๋จผ์ ๋ฐ๊ณ , ๊ทธ์ ๋ง๋ ํ์ํ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ์๋ฒ๋ก ์์ฒญ -> ์๋ต๋ฐ์ ํ์ ์ด๋ฏธ์ง๋ฅผ ๋ ๋๋ง ํ ์ ์๋ค.
3. ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค์ฃผ๋ ์๋ฒ๋ Web Application Server ๊ฐ ์๋ Web Server๋ก, ๊ตณ์ด Application level๊น์ง ๊ฐ์ง ์๊ณ ์๋จ์์ ๋น ๋ฅด๊ฒ ํ์ํ (์ ์ ์ธ) ํ์ผ์ ๋ณด๋ด ์ค ์ ์๋ค.
4. ์ฆ Web Server ์์๋ ์ ์ ์ธ ์ฝํ ์ธ ๋ง ์ฒ๋ฆฌํ๋๋ก ๊ธฐ๋ฅ์ ๋ถ๋ฐฐํ์ฌ ์๋ฒ์ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค.
4 -2. WAS ๊ฐ ํ์ํ ์ด์
A. ๋์ ์ธ ์ปจํ ์ธ ๋ฅผ ์๋ตํด์ผ ํ๋ฏ๋ก.
ํํ ์ ํ๋ ๋ธ๋ผ์ฐ์ ์ ์ ์ ์ฝํ ์ธ ์ ๋์ ์ฝํ ์ธ ๊ฐ ๋ชจ๋ ์กด์ฌํ๋ค. ์ ์ ์ปจํ ์ธ ๋ง ์๋ตํ๋ Web Server๋ก๋ ๋์ ์ฝํ ์ธ ๋ฅผ ์๋ตํ ์ ์๋ค.
Web Server ๊ฐ ๋์ ์ปจํ ์ธ ๊น์ง ๋์ํ๊ธฐ ์ํด์ , ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์๋ง์ ๊ฒฝ์ฐ์ ์๋ต๊ฐ์ ๋ฏธ๋ฆฌ ์ค๋นํด์ผ ํ์ง๋ง, ์๋ฒ ์์์ ๋ชจ๋ ์ผ์ด์ค์ ๋์ํ ๋งํผ ์ถฉ๋ถํ์ง ์๋ค. ๊ทธ๋์ ๋์ ์ธ ์ปจํ ์ธ , ์ฆ ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋น์ฆ๋์ค ๋ก์ง์ ๋ง๊ฒ ์์ฑํ์ฌ ์ ๊ณตํ๋ WAS๊ฐ ํ์ํ๋ค. ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
Q. ๊ทธ๋ผ ์ญ์ผ๋ก WAS ๊ฐ Web Server์ ์ญํ ๊น์ง ๋ชจ๋ ์ํํ๋ฉด ๋์ง ์์๊น? WAS๋ ๋์ ์ผ๋ก ์ ๊ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ ์ ์์ผ๋ ์ ์ ๋ฐ์ดํฐ๋ ssap ๊ฐ๋ฅํ์ง ์์๊น?
A. ์ฐ์ WAS ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ ๋ชฉ์ ์ผ๋ก ์ ์๋ ์๋ฒ๋ค.
๋ง์ฝ ์ ์ ์ปจํ ์ธ ์์ฒญ๊น์ง WAS์์ ์ฒ๋ฆฌํ๋ค๋ฉด, ์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ค๋นํ๋ฉด์ ๋์์ ๋น์ฆ๋์ค ๋ก์ง๊น์ง ์ํํด์ผ ํ๊ธฐ์ ์๋ฒ ๋ถํ๊ฐ ์ฌํด์ง๋ค. ์๋ฒ ์์ ์๋ชจ๊ฐ ์ฌํด์ง๊ณ ์์ฐ์ค๋ ์ํ ์๋๊ฐ ๋๋ ค์ง๋ค. ์ด๋ฐ ์ด์ ๋ก, Web Server๋ ์ ์ ์ฝํ ์ธ ๋ฅผ, WAS๋ ๋์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ๊ฐ์์ ์ญํ ์ ์ถฉ์คํ๊ธฐ๋ก ํ๋ค.
4 - 3. ๋ฒ์ธ) Reverse Proxy
Web Server ์ WAS๋ฅผ ๋ถ๋ฆฌํ๋ฉด , Reverse Proxy์ ์ด์ ์ ๋๋ฆด ์ ์๋ค.
- ํด๋ผ์ด์ธํธ๋ Web Server ๋ฅผ ํตํด WAS์ ์ ๊ทผํด์ผ ํ๋ฏ๋ก DB์ ์ฐ๊ด์ด ์๋ ์ค์ํ WAS์ ์ ๊ทผ ๋ณด์์ฑ์ด ๋์์ง๋ค.
(Web Server ์์ ๋ณด์ ์ญํ - SSL ์๋ณตํธํ ์ฒ๋ฆฌ - ์ ํด์ค ์ ์๊ธฐ์)
- ํด๋ผ์ด์ธํธ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Web Server๋ฅผ ํตํด ์ฌ๋ฌ ๋์ WAS์ ์ ์ ํ๊ฒ ๋ถ๋ฐฐํ ์ ์๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ธฐ๋ฅ์ผ๋ก ํธ๋ํฝ ๋ถ์ฐ์ด ๊ฐ๋ฅํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฃผ ์ด์ฉํ ๋งํ ๋ฆฌ์์ค๋ฅผ Web Server ์ ์บ์ฑํ์ฌ ์๋ตํ ์ ์๋ค.
(- ๊ธ ์ด๋ฐ๋ถ์ Web Server์ ๋ํ์ ์ธ ์์๋ก Nginx ๋ฅผNginx๋ฅผ ๋ค์๋๋ฐ, ์ค์ ๋ก Nginx๋ฅผ ๋ฆฌ๋ฒ์ค ํ๋ก์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.)
ref
https://blog.naver.com/PostList.naver?blogId=qjawnswkd&from=postList&categoryNo=28