π HTTP/1.1 β HTTP/2 μ νκΈ°: Nginx μ€μ μΌλ‘ ν΄κ²°ν μ€λ¬΄ μ₯μ κ²½ν
π HTTP/1.1 β HTTP/2 μ νκΈ°: Nginx μ€μ μΌλ‘ ν΄κ²°ν μ€λ¬΄ μ₯μ κ²½ν
π¨ μμμ κ°μμ€λ¬μ΄ μλ΅ μ€λ₯
μ΄λ λ , λ°°ν¬ μ΄ν μΉ νμ΄μ§μμ κ°νμ μΈ μλ΅ μ§μ°κ³Ό
504 Gateway Timeout μ€λ₯κ° ν°μ§κΈ° μμνμ΅λλ€.
- νμ΄μ§λ λ‘λ©μ΄ μ λκ³ β¦
- μ½μμλ νΉμ JS/CSS μμ²μ΄ κ³μ λκΈ° μνβ¦
- μλ² λ‘κ·Έλ μ‘°μ©νλ°, μ¬μ©μλ κ³μ μλ¬λ₯Ό λ³΄κ³ μμμ΅λλ€.
μ²μμλ λ€νΈμν¬ λ¬Έμ λΌκ³ μκ°νμ§λ§,
μμΈμ HTTP/1.1μ ꡬ쑰μ νκ³μ μμμ΅λλ€.
π§© μμΈ λΆμ: HTTP/1.1μ νμ΄νλΌμ΄λ λ¬Έμ
μ°λ¦¬λ HTTP/1.1 νκ²½μμ μλΉμ€λ₯Ό μ΄μνκ³ μμκ³ ,
ν΄λΌμ΄μΈνΈλ Nginxλ₯Ό κ±°μ³ μλ²μ μμ²μ 보λ΄κ³ μμμ΅λλ€.
λ°κ²¬λ λ¬Έμ
- νλμ 컀λ₯μ μ μ¬λ¬ μμ²μ΄ μμ°¨μ μΌλ‘ μμ΄λ ꡬ쑰 (νμ΄νλΌμ΄λ)
- 첫 λ²μ§Έ JS μμ²μ΄ μ§μ°λμ, λλ¨Έμ§ λ¦¬μμ€ μμ²λ μ€μ€μ΄ λκΈ°
- κ²°κ³Όμ μΌλ‘ λͺ¨λ 리μμ€ λ‘λ©μ΄ λ©μΆκ³ 504 μ€λ₯ λ°μ
μ 리νλ©΄β¦
νλμ 컀λ₯μ μμ μμ²μ μμ°¨μ μΌλ‘λ§ μλ΅ κ°λ₯ β
첫 μμ²μ΄ λ리면 λλ¨Έμ§λ μ€μ€μ΄ λ¬Άμ = HOL Blocking
π ν΄κ²°: HTTP/2λ‘ μ ν
β ν΄κ²° μ λ΅
- ν΄λΌμ΄μΈνΈ β Nginx β Spring μλ² κ΅¬μ‘° μ μ§
- Nginxμμ HTTP/2 νμ±ν
- ν μ€νΈ κ²°κ³Ό: μμ² λ³λ ¬ μ²λ¦¬λ‘ μλ΅ μ§μ° μμ ν΄κ²°
π§ Nginxμμ HTTP/2 νμ±ν λ°©λ²
1οΈβ£ κΈ°μ‘΄ μ€μ (HTTP/1.1)
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
location / {
proxy_pass http://localhost:8080;
}
}
2οΈβ£ μμ λ μ€μ (HTTP/2 μ μ©)
server {
listen 443 ssl http2; # http2 λͺ
μ
server_name example.com;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
location / {
proxy_pass http://localhost:8080;
}
}
π μ£Όμ: HTTP/2λ TLS κΈ°λ°(HTTPS)μμλ§ λμνλ―λ‘ SSL μ€μ μ΄ νμμ λλ€.
π μ ν ν λ³ν
νλͺ© | μ (HTTP/1.1) | ν (HTTP/2) |
---|---|---|
μμ² λ°©μ | μμ°¨ μμ²/μλ΅ | λ³λ ¬ μμ²/μλ΅ |
μ§μ° μμ | 첫 μμ²μ΄ λ¦μΌλ©΄ μ 체 μ§μ° | μμ²λΌλ¦¬ λ 립μ μ²λ¦¬ |
νμ΄μ§ λ‘λ© | λλ¦Ό, μΌλΆ 504 μ€λ₯ | λΆλλ½κ³ λΉ λ₯Έ λ‘λ© |
μ¬μ©μ κ²½ν | νμ΄μ§ κΉ¨μ§, λκΈ° | μ€λ₯ μμ, λ°μ μλ β |
π HTTP/2μ κΈ°μ μ μ₯μ μμ½
κΈ°λ₯ | μ€λͺ |
---|---|
λ©ν°νλ μ± | νλμ 컀λ₯μ μμ μμ²/μλ΅ λ³λ ¬ μ²λ¦¬ |
λ°μ΄λ리 νλ μ΄λ° | ν μ€νΈ λμ λ°μ΄λ리 μ²λ¦¬λ‘ μλ ν₯μ |
HPACK ν€λ μμΆ | λ°λ³΅λλ ν€λλ₯Ό μμΆν΄ λμν μ μ½ |
HOL Blocking ν΄κ²° | μλ΅ μμμ μ½λ§€μ΄μ§ μμ |
π‘ μ 리νλ©°
μ€μ λ‘ κ²½νν΄ λ³΄λ, λ¨μν νλ‘ν μ½ μ°¨μ΄ νλκ°
μλΉμ€ μλ΅μ±κ³Ό μ¬μ©μ κ²½νμ ν° μν₯μ λ―ΈμΉλ€λ κ±Έ 체κ°νμ΅λλ€.
λκΈλ¨κΈ°κΈ°