π[Spring] Proxy(νλ‘μ)λ?
Proxy(νλ‘μ)λ?
Proxy(νλ‘μ)
λ μ¬μ μ μλ―Έλ‘λ βλ리βλΌλ μλ―Έλ‘, νλ‘ν μ½μ μμ΄μ λ리 μλ΅
μ νλ μν μ΄λΌκ³ ν μ μλ€.
보μμμ λ¬Έμ λ‘ μ§μ ν΅μ μ μ£Όκ³ λ°μ μ μλ μ¬μ΄μμ νλ‘μλ₯Ό μ΄μ©ν΄μ μ€κ³λ₯Ό νλ κ°λ
μ΄λ€.
μ΄λ° μλ²λ₯Ό νλ‘μ μλ²
λΌκ³ νλ€.
νλ‘μ μλ²μ νΉμ§?
νλ‘μ μλ²λ ν΄λΌμ΄μΈνΈμ μλ²μ μ
μ₯μΌλ‘ λ³Ό λ, μλ‘ λ°λμ μν μ νλ κ²μ²λΌ 보μΈλ€.
ν΄λΌμ΄μΈνΈκ° νλ‘μλ₯Ό λ°λΌλ³΄λ©΄ νλ‘μκ° βμλ²βμ μν μ νλ κ²μ²λΌ 보μ΄κ³ , μλ²κ° νλ‘μλ₯Ό λ°λΌλ³΄λ©΄ βν΄λΌμ΄μΈνΈβμ μν μ νλ κ²μ²λΌ 보μΈλ€.
[μλ²] <-> [νλ‘μ μλ²] <-> ν΄λΌμ΄μΈνΈ
κ·Έλ¬λ©΄ νλ‘μλ 보μμ μΈ μΈ‘λ©΄μ΄ μλλ©΄ μ¬μ©νμ§ μμλ λ κΉ?
νλ‘μλ λ¨μ 보μ λ¬Έμ λλ¬Έμλ§ μ¬μ©νλ κ²μ μλλ€.
νλ‘μλ νλ‘μ μλ²
μ μμ²λ λ΄μ©λ€μ μΊμ
λ₯Ό μ΄μ©ν΄ μ μ₯νλ€.
λ°μ΄ν°λ₯Ό μ μ₯ν΄λλ©΄, λμ€μ λ€μ μμ²ν λ μ²μλΆν° μ²λ¦¬νλ κ²μ΄ μλλΌ μ μ₯ν΄λ λ°μ΄ν°λ₯Ό κ°μ Έλ€ μ°λ©΄ λλ―λ‘ μ μ‘ μκ° μ μ½
μ μΈ μΈ‘λ©΄μμλ μ₯μ μ΄ μμ΄ λ§μ΄ μ¬μ©νλ€.
μμ
μμ 1.
λ΄κ° μλ§νν
λΌλ©΄μ μ¬λ¬λΌκ³ λΆνν¨. -> μλ§λ βμ§μ λΌλ©΄ μλλ°?βλΌκ³ λ΅ν¨. -> κ·Έλ¬λ©΄ λλ λ΄ μμλ³΄λ€ λ 빨리 λΌλ©΄μ λ¨Ήμ μ μκ² λ¨.
μ΄μ λ λΌλ©΄μ΄ μ§μ μΊμ
λμκΈ° λλ¬Έμ΄λΌκ³ μκ°ν μ μμ!
μ΄λ νλ‘μμ μ₯μ μ€ νλμΈ μ κ·Ό μ μ΄, μΊμ±
μΌλ‘ λ³Ό μ μλ€.
μμ 2.
μλΉ νν
μλμ°¨ μ£Όμ λ₯Ό λΆν -> μλΉ κ° μ£Όμ λ ν΄μ€¬λλ° μΈμ°¨κΉμ§ λ€μΌλ‘ ν΄μ€ -> λ΄κ° λΆνν(κΈ°λν) κ² μΈμ λΆκ° κΈ°λ₯μ μ»μ.
νλ‘μμ μ₯μ μ€ νλμΈ λΆκ°κΈ°λ₯ μΆκ°
λ‘ λ³Ό μ μλ€.
μμ 3.
μλ₯Ό λ€μ΄, μλ§νν
λΌλ©΄μ μ¬λ¬λΌκ³ νλλ° μλ§κ° λμνν
μμΌ°λ€κ³ ν΄λ³΄μ.
λλ μμ²μ μλ§νν
ν΄μ μ΄ν κ³Όμ μ λͺ¨λ₯Έλ€.
κ·Έλλ κ²°κ΅ λμμ΄ λΌλ©΄μ μ¬μ λμκ² λμ°©νκΈ°λ§ νλ©΄ λλ€.
μ΄ κ²μ νλ‘μμ μ₯μ μ€ νλμΈ νλ‘μ 체μΈ
μΌλ‘ λ³Ό μ μλ€.
νλ‘μμ μ£Όμ κΈ°λ₯
νλ‘μλ₯Ό ν΅ν΄μ ν μ μλ μΌμ ν¬κ² 2κ°μ§λ‘ ꡬλΆν μ μλ€.
- μ κ·Ό μ μ΄
- κΆνμ λ°λ₯Έ μ κ·Ό μ°¨λ¨
- μΊμ± -> μΊμ±λ μ κ·Ό μ μ΄ μ€ νλμ
- μ§μ° λ‘λ©
- λΆκ° κΈ°λ₯ μΆκ°
- μλ μλ²κ° μ 곡νλ κΈ°λ₯μ λν΄μ λΆκ° κΈ°λ₯μ μν
- μ) μμ² κ°μ΄λ, μλ΅ κ°μ μ€κ°μ λ³νν¨
- μ) μ€ν μκ°μ μΈ‘μ ν΄μ μΆκ° λ‘κ·Έλ₯Ό λ¨κΉ
νλ‘μ κ°μ²΄κ° μ€κ°μ μμΌλ©΄ ν¬κ² μ κ·Όμ μ΄
μ λΆκ°κΈ°λ₯ μΆκ°
λ‘ λλλ€.
νλ‘μ μλ²
νλ‘μ μλ²λ 2κ°μ§λ‘ λλ μ μλ€.
- Forward Proxy
- Reverse Proxy
Forward Proxy
ν¬μλ νλ‘μ
λ ν΄λΌμ΄μΈνΈ λμ νλ‘μ μλ²κ° λͺ©μ μ§ μλ²μ ν΅μ μ ꡬμ±ν΄μ£Όλ νλ‘μλ₯Ό λ§νλ€.
ν¬μλ νλ‘μλ₯Ό μ¬μ©νλ©΄ μλμ κ°μ΄ ν΅μ μ΄ κ΅¬μ±λλ€.
ν΄λΌμ΄μΈνΈ -> [IP: 200.000.0.0] νλ‘μ μλ² -> [http://example.co.kr] λͺ©μ μ§ μλ² -> νλ‘μ μλ² -> ν΄λΌμ΄μΈνΈ
ν΄λΌμ΄μΈνΈλ μΉ μλ²μ μ§μ μ μΌλ‘ μ μνλκ° μλλΌ ν¬μλ νλ‘μμ μ μνκ³ , νλ‘μ μλ²κ° μΉ μλ²μ μ μν΄ μμ²μ μ λ¬νλ€.
μμ²μ μ²λ¦¬ν ν μλ΅μ λ€μ μΉ μλ² -> νλ‘μ μλ² -> ν΄λΌμ΄μΈνΈμ κ²½λ‘λ₯Ό ν΅ν΄ μ λ¬νλ€.
Forward Proxyμ μ₯μ
- μΊμ μ μ₯
- νλ‘μ μλ²μ μ¬μ©μ μμ²μ μΊμλ₯Ό μ΄μ©ν΄ μ μ₯νμ¬ μ μ‘μκ°μ μ μ½ν μ μλ€.
- URL νν°λ§
- μΈλΆ μ κ·Όμ λͺ¨λ νλ‘μ μλ²λ₯Ό ν΅ν΄μΌ νλ―λ‘, λͺ©μ μ§ μλ²λ‘ κ°λ €λ©΄ νλ‘μ μλ²μμ URL νν°λ§μ ν΅ν ν κ° μ μλ€.
Reverse Proxy
리λ²μ€ νλ‘μ
λ ν¬μλ νλ‘μμλ λ¬λ¦¬ μΉ μλ²μͺ½μ μμΉνλ€.
κ·Έλ¬λ©΄ μ΄λ»κ² λλλ°?
ν΄λΌμ΄μΈνΈμ μ κ·Όμ μ΅μ΄λ‘ λ°μ μμ²μ ν΄λΉνλ μΉ μλ²μ λ°°λΆν΄μ£Όλ μν μ νλ€.
ν¬μλ νλ‘μλ [IP:200.000.0.0]μ κ°μ§ μλ²μλ€λ©΄, 리λ²μ€ νλ‘μλ μλμ κ°λ€.
ν΄λΌμ΄μΈνΈ -> [http://example.co.kr] νλ‘μ μλ² -> [IP: 200.000.0.0] μΉ μλ²1
-> [IP: 300.000.0.0] μΉ μλ²2
ν΄λΌμ΄μΈνΈκ° http://example.co.kr/content1
μ μ κ·Όνλ©΄ μΉ μλ²1λ‘, ~/content2
μ μ κ·Όνλ©΄ μΉ μλ²2λ‘ λ°°λΆν΄μ€λ€.
Reverse Proxyμ μ₯μ
-
λΆλ΄ λΆμ°
μ€μ μΌλ‘μ μ μ½ν μΈ
μλμ μ½ν μΈ
μ 보λ κ³³μ λλμ΄, λ©λͺ¨λ¦¬ μ¬μ©λμ ν¨μ¨νλ₯Ό ν μ μλ€.
λ‘λ λ°Έλ°μ€μ κ°μ΄ μ¬μ©νλ©΄ λμ± λΆλ΄μ λΆμ°ν μ μλ€. -
μΊμ μ μ₯
ν¬μνΈ νλ‘μμ λμΌνκ² λμΌν λ°μ΄ν°λ₯Ό μ»μ λμ νλ‘μ μλ²κ° μ μ₯νλ λ΄μ©μ λλ €μ€λ€. -
μνλ¦¬ν° λμ± , λ°μ΄λ¬μ€ λμ±
ν΅μ μ νλ‘μ μλ²μ μ§μ½λμ΄ νλ‘μ μλ² λ΄μ μνλ¦¬ν° λμ± , λ°μ΄λ¬μ€ λμ± μ ꡬννμ¬ Web μλ²λ‘μ λΆμ μ‘μΈμ€, μ¬μ© λ±μ λ°©μ§ν μ μλ€.
μ°Έκ³ μλ£
https://engineer-mole.tistory.com/288
https://milkye.tistory.com/202
λκΈλ¨κΈ°κΈ°