๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
BackEnd๐ŸŒฑ/Etc

Web Server์™€ WAS์˜ ์ฐจ์ด

by ์•ˆ์ฃผํ˜• 2022. 4. 15.

์„œ๋ก 

์›น ์„œ๋ฒ„(Web Server)์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(Web Application Server)์˜ ํ‚ค์›Œ๋“œ๋งŒ ๋‘๊ณ  ๋ณด์•˜์„ ๋•Œ ๋‘ ๊ฐœ์˜ ์ฐจ์ด๊ฐ€ ๋ญ”๊ฐ€์— ๋Œ€ํ•ด ํ™•์‹  ์žˆ๊ฒŒ ๋Œ€๋‹ต์„ ๋ชปํ• ๋ฟ๋”๋Ÿฌ ์•„์ง ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ€์ง€ ์•Š์•„์„œ ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด ๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ์ •์  ํŽ˜์ด์ง€(static pages)์™€ ๋™์  ํŽ˜์ด์ง€(dynamic pages)๋ฅผ ๋จผ์ € ์ดํ•ดํ•˜๊ณ , ๊ทธ๋‹ค์Œ Web Server์™€ WAS์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ •์  ํŽ˜์ด์ง€(static pages)์™€ ๋™์  ํŽ˜์ด์ง€(dynamic pages)
  2. Web Server์™€ WAS์˜ ์ฐจ์ด

 

1.  ์ •์  ํŽ˜์ด์ง€(static pages)์™€ ๋™์  ํŽ˜์ด์ง€(dynamic pages)

Web ์ด๋ž€?

์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ์›นํŽ˜์ด์ง€๋Š” ์œ„์˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์›น ์„œ๋ฒ„๋Š” ์ฃผ์†Œ(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)๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ปดํ“จํ„ฐ์ž…๋‹ˆ๋‹ค.

Web Server

์š”์ฒญ์— ๋”ฐ๋ผ ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ ์ค‘ ์ ์ ˆํ•˜๊ฒŒ ์„ ํƒํ•˜์—ฌ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ 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๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ๋™์ž‘์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ฏธ๋“ค์›จ์–ด ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

Web Application Server, WAS

์œ„ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด WAS๋Š” Web Server์™€ Web Container(JSP, Servlet)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. Web Server์™€์˜ ์ฐจ์ด์ ์€ Web Container๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ์ ์ด๋ฉฐ WAS๋Š” HTML ๊ฐ™์€ ์ •์ ์ธ ํŽ˜์ด์ง€์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ DB ์กฐํšŒ ๊ฐ™์€ ๋™์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด WAS์™€ Web Server๋ฅผ ๋ถ„๋ฆฌํ•œ ํ˜•ํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ฆฌ๋ฅผ ํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ์žฅ์ ์ด ๋ฌด์—‡์ผ๊นŒ์š”?

Web Server์™€ WAS ๋ถ„๋ฆฌ

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๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฌด์ค‘๋‹จ ์šด์˜์„ ์œ„ํ•œ ์žฅ์•  ๊ทน๋ณต์— ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๋Ÿฌ๋Œ€์˜ WAS ์šด์šฉ

4. ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ WAS๋กœ ์„œ๋น„์Šค ๊ฐ€๋Šฅ
ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ PHP Apllication๊ณผ Java Application์„ ํ•จ๊ป˜ ์ƒ์šฉ ๊ฐ€๋Šฅ

'BackEnd๐ŸŒฑ > Etc' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

API vs Library vs Framework  (0) 2022.04.25
Nginx๋ž€ ๋ฌด์—‡์ธ๊ฐ€?  (3) 2022.04.20
Forward Proxy์™€ Reverse Proxy  (0) 2022.04.18
URI, URL, ๊ทธ๋ฆฌ๊ณ  URN  (3) 2022.04.16
[git] commit ๋ฉ”์‹œ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ  (2) 2022.03.31
[git] commit ์‚ญ์ œํ•˜๊ธฐ  (0) 2021.10.20

๋Œ“๊ธ€