https://1eehyunji.tistory.com/entry/%ED%94%84%EB%A1%9D%EC%8B%9CProxy-%EA%B0%9D%EC%B2%B4
νλ‘μ(Proxy) κ°μ²΄
νλ‘μ κ°μ²΄λ μ΄λ€ λμμ κΈ°λ³Έμ μΈ λμ(μμ± μ κ·Ό, ν λΉ, μν, μ΄κ±°, ν¨μ νΈμΆ λ±)μ μμ μ κ°λ‘μ±μ νΉλ³ν λ€λ₯Έ λμ(νΈλ©)μ ν μ μκ² νλ κ°μ²΄λ₯Ό λ»νλ€. μλ°μ€ν¬λ¦½νΈμμ νλ‘μ
1eehyunji.tistory.com
μμ μμ±νλ κΈμ νλ‘μ κ°μ²΄λ λμμΈ ν¨ν΄ μ€ νλμΈ νλ‘μ ν¨ν΄μ κ°λ μ΄ λ Ήμλ€μ΄ μλ κ°μ²΄μ΄λ€.
νλ‘μ ν¨ν΄μ λμ κ°μ²΄μ μ κ·ΌνκΈ° μ κ·Έ μ κ·Όμ λν νλ¦μ κ°λ‘μ±μ λμ κ°μ²΄ μλ¨μ μΈν°νμ΄μ€ μν μ νλ λμμΈ ν¨ν΄μ΄λ€.
μ¦, μ΄λ€ λμ κ°μ²΄μ μ κ·Όνκ³ μ ν λ ν΄λΉ κ°μ²΄λ₯Ό μ§μ μ μΌλ‘ μ κ·Όνλ κ²μ΄ μλλΌ ν΄λΉ κ°μ²΄μ λμνλ 'λ리μΈ' μν μ νλ κ°μ²΄λ₯Ό ν΅ν΄ λμ κ°μ²΄μ μ κ·Όνλ λ°©μμ΄λ€.
νλ‘μ ν¨ν΄μ μ μ© μ¬λ‘
- Access Control / Validation
- ν΄λΌμ΄μΈνΈκ° μ΄λ€ κ°μ²΄μ μ κ·Όν΄μΌ νλλ°, λΉμ¦λμ€ λ‘μ§μ μΆκ°μ μΈ κ²μ¦μ΄ νμν κ²½μ°
- μΆκ°μ μΈ κ²μ¦μ μμ)
- μ΄λ€ μ μ κ° νΉμ μ§μμ μμ λλ μ κ·Όμ λͺ»νκ² νλ€.
- μ΄λ€ μ μ κ° κ°μ²΄μ μ κ·Όν μ μλ κΆνμ΄ μλμ§ νμΈνλ€.
- Caching / Logging
- μ΄λ€ κ°μ²΄μ λ°μ΄ν°λ₯Ό μμ²ν λ, νλ‘μ κ°μ²΄μ Caching λ‘μ§μ μΆκ°μ μΌλ‘ μ μ©νλ κ²½μ°
- λμ κ°μ²΄μ μμ² κ΅νμ ν λλ§λ€ νλ‘μ κ°μ²΄κ° Loggingμ νλ κ²½μ°
- Credit / Check Card(banking)
- μ΄λ€ 물건μ μΉ΄λλ‘ κ΅¬μ νλ κ²½μ° μΉ΄λκ° νλ‘μ μν μ ν΄μ£Όκ³ , νκΈμ΄ λμ κ°μ²΄κ° λλ κ²½μ°
νλ‘μ μλ²(Proxy Server)
νλ‘μ μλ²λ μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μμ ν΄λΌμ΄μΈνΈκ° μμ μ ν΅ν΄ λ€λ₯Έ λ€νΈμν¬ μλΉμ€μ κ°μ μ μΌλ‘ μ μν μ μκ² ν΄μ£Όλ μ»΄ν¨ν° μμ€ν μ΄λ μμ© νλ‘κ·Έλ¨μ κ°λ¦¬ν¨λ€.
λνμ μΌλ‘ nginx, CloudFlare λ±μ΄ μλ€.
nginx
nginxλ λΉλκΈ° μ΄λ²€νΈ κΈ°λ°μ ꡬ쑰μ λ€μμ μ°κ²°μ ν¨κ³Όμ μΌλ‘ μ²λ¦¬ κ°λ₯ν μΉ μλ²μ΄λ€. μ£Όλ‘, Node.js μλ² μλ¨μ νλ‘μ μλ²λ‘ νμ©νλ€.
μ΄λ₯Ό ν΅ν΄ μ΅λͺ μ¬μ©μκ° μ§μ μ μΌλ‘ μλ²μ μ κ·Όνλ κ²μ μ°¨λ¨νκ³ , κ°μ μ μΌλ‘ ν λ¨κ³ λ κ±°μΉκ² λ§λ€μ΄μ 보μμ κ°νν μ μλ€.
CloudFlare
CloudFlareλ μ μΈκ³μ μΌλ‘ λΆμ°λ μλ²κ° μκ³ , μ΄λ₯Ό ν΅ν΄ μ΄λ€ μμ€ν μ μ½ν μΈ μ λ¬μ λΉ λ₯΄κ² ν μ μλ CDN μλΉμ€μ΄λ€.
*CDN(Content Delivery Network) : κ° μ¬μ©μκ° μΈν°λ·μ μ μνλ κ³³κ³Ό κ°κΉμ΄ κ³³μμ μ½ν μΈ λ₯Ό μΊμ± λλ λ°°ν¬νλ μλ² λ€νΈμν¬μ΄λ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μκ° μΉ μλ²λ‘λΆν° μ½ν μΈ λ₯Ό λ€μ΄λ‘λνλ μκ°μ μ€μΌ μ μλ€.
CloudFlareλ μΉ μλ² μλ¨μ νλ‘μ μλ²λ‘ λκ³ DDOS 곡격(μ§§μ μκ°λμ λ€νΈμν¬μ λ§μ μμ²μ 보λ΄μ λ€νΈμν¬λ₯Ό λ§μν€κ³ μΉμ κ°μ©μ±μ λ°©ν΄νλ μ¬μ΄λ² 곡격) λ°©μ΄λ HTTPS ꡬμΆμ μ°μΈλ€. λ, μλΉμ€λ₯Ό λ°°ν¬ν μ΄νμ ν΄μΈμμ μμ¬μ€λ¬μ΄ νΈλν½μ΄ λ§μ΄ λ°μνλ©΄ μ΄ λλ¬Έμ ν΄λΌμ°λ μλΉμ€ λΉμ©μ΄ λ§μ΄ λ°μν μλ μλλ° μ΄λ CloudFlareκ° μμ¬μ€λ¬μ΄ νΈλν½μΈμ§ λ¨Όμ νλ¨ν΄μ CAPTCHA λ±μ κΈ°λ°μΌλ‘ μ΄λ₯Ό μΌμ λΆλΆ λ§μμ£Όλ μν λ μννλ€.
μμ κ·Έλ¦Όμ²λΌ μ¬μ©μ, ν¬λ‘€λ¬, 곡격μκ° μμ μ μΉ μ¬μ΄νΈλ₯Ό μ μνκ² λλ©΄ μ΄λ CloudFlareλ₯Ό νλ‘μ μλ²λ‘ λμ΄μ 곡격μλ‘λΆν° μΉ μλ²λ₯Ό 보νΈν μ μλ€.
CORSμ νλ‘ νΈμλμ νλ‘μ μλ²
CORS(Cross Origin Resource Sharing)λ μλ²κ° μΉ λΈλΌμ°μ μμ 리μμ€λ₯Ό λ‘λν λ λ€λ₯Έ μ€λ¦¬μ§(νλ‘ν μ½κ³Ό νΈμ€νΈ μ΄λ¦, ν¬νΈμ μ‘°ν© ex : https://kundol.com:12010)μ ν΅ν΄μ λ‘λνμ§ λͺ»νκ² νλ HTTP ν€λ κΈ°λ°μ λ©μ»€λμ¦μ΄λ€.
μλ₯Ό λ€μ΄, νλ‘ νΈμλμμ 127.0.0.1:3000μΌλ‘ ν μ€ν μ νλλ° λ°±μλ μλ²λ 127.0.0.1:12010μ΄λΌλ©΄ ν¬νΈ λ²νΈκ° λ€λ₯΄κΈ° λλ¬Έμ CORS μλ¬κ° λ°μνλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ νλ‘ νΈμλμμ νλ‘μ μλ²λ₯Ό λ§λ€κΈ°λ νλ€. μ¦, νλ‘μ μλ²λ₯Ό μ΄μ©ν΄μ νλ‘ νΈμλ μλ²μμ μμ²λλ μ€λ¦¬μ§μ 127.0.0.1:12010μΌλ‘ λ°κΎΈλ κ²μ΄λ€.
μ κ·Έλ¦Όμ²λΌ νλ‘ νΈμλ μλ² μλ¨μ νλ‘μ μλ²λ₯Ό λ¬μ μ€λ¦¬μ§μ λ°±μλ μλ²μ λμΌνκ² λ°κΏμ£Όμ΄ API μμ²μ κ°λ₯νκ² νλ€.
'CS > λμμΈ ν¨ν΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λμμΈ ν¨ν΄] MVC ν¨ν΄ (0) | 2023.08.03 |
---|---|
[λμμΈ ν¨ν΄] μ΄ν°λ μ΄ν° ν¨ν΄(Iterator Pattern)κ³Ό λ ΈμΆλͺ¨λ ν¨ν΄(revealing module pattern) (0) | 2023.08.03 |
[λμμΈ ν¨ν΄] μ΅μ λ² ν¨ν΄(Observer Pattern) (0) | 2023.08.02 |
[λμμΈ ν¨ν΄] μ λ΅ ν¨ν΄(Strategy Pattern) (0) | 2023.08.02 |
[λμμΈ ν¨ν΄] ν©ν 리 ν¨ν΄(Factory Pattern) (0) | 2023.08.01 |