νμ¬ λͺ¨λ μλ΅μλ http ν€λκ° μμ΅λλ€.
μλ²: gunicorn/19.0.0
보μμμ μ΄μ λ‘ μ¬λλ€μ΄ gunicornμμ 보μ μ·¨μ½μ μ κ²μνλ κ²μ μ μ μλλ‘ λ§μ€νΉν μ μκΈ°λ₯Ό λ°λλλ€. λ§μ€νΉν λ°©λ²μ΄ μμκΉμ? μλ§λ μ€μ μ ν΅ν΄?
μΌλ°μ μΌλ‘ gunicornμ νλ‘λμ
νκ²½μμ nginxμ κ°μ 리λ²μ€ νλ‘μ μλ² λ€μ λ°°ν¬λλ©° nginxλ μ체 Server
νκ·Έλ₯Ό μΆλ ₯ν©λλ€.
μμΈ΅ νλ¬μ€ νλ
@benoitc λ₯Ό μ¬μ©νμ¬ λͺ λ Ήμ€μμ μ΅μ μ μ μν μ μμ΅λλ€. μ΄λ»κ² μκ°νμΈμ? κ·Έλ μ§ μμΌλ©΄ @georgexsh μμ μ€λͺ ν λλ‘ μ΄ ν°μΌμ λ«μ κ²μ λλ€. νλ‘λμ λͺ¨λμμλ μλ°©ν₯ νλ‘μ(nginx, apache, ...)λ₯Ό μ¬μ©ν μ μμ΅λλ€.
post_request
νν¬μμ νκ²½μ μμ ν μ μμ΅λκΉ?
@tilgovi κ° μλνλ κ² κ°κ΅°μ... κ·Έλ λ€λ©΄ λ€λ₯Έ μ΅μ μ λ§λ€μ΄μΌ νλμ§ νμ€νμ§ μμ΅λλ€...
μλνμ§ μμ΅λλ€. μμ²μ ν΄λΉ μ§μ μμ μ΄λ―Έ μ μ‘λμμ΅λλ€.
@tilgovi λ―Έλ€μ¨μ΄λ μλνμ§ μμ΅λλ€. Server
κ° κΈ°λ³Έ ν€λμ μκΈ° λλ¬Έμ
λλ€.
μλ² ν€λλ₯Ό μμ ν μ κ±°νλ©΄ μ΄λ»κ² λ κΉμ?
+1
ν€λ κ°μ μμμ λ¬Έμμ΄λ‘ μ€μ ν μ μλ€λ©΄ ν€λλ₯Ό μμ ν μ κ±°ν μλ μμ΅λλ€.
+1
ν€λλ₯Ό μ κ±°νλ €λ μ΄μ λ 무μμ λκΉ?
κ³Όκ±°μλ μλ² μννΈμ¨μ΄ λ° λ²μ μ μ¨κΈ°κΈ° μν΄ λ°°ν¬μμ ν€λλ₯Ό μ κ±°νμ¬ μλ €μ§ μ΅μ€νλ‘μμ΄ μλ μλ²λ₯Ό ν¬λ‘€λ§νλ μ¬λμ΄ μ ννμ§ μλλ‘ νμ΅λλ€.
μ. 보μμ΄ μ΄μ μ€ νλμ
λλ€. λ¬Όλ‘ Server
κ°μ μμμ κ°μΌλ‘ λ³κ²½ν μ μμ§λ§ μ€μ λ‘ νμνμ§ μμ μΆκ° λ°μ΄νΈλ₯Ό 보λ΄λ μ΄μ λ 무μμ
λκΉ?
λλ μ΄ κΈ°λ₯μ λν ν보λ₯Ό μμ λ‘κ² νμ΅λλ€: #1384 . κ·Έκ²μ νλμ λ΄ ν¬λ§ λͺ©λ‘μμμμ΅λλ€.
ν λ‘ μ μΆκ°νλ €λ©΄: μΌλΆ μ νλ‘μ μλ²λ Server
ν€λλ₯Ό μμ νμ§λ§ μΌλΆλ https://www.w3.org/Protocols/μ μ€λͺ
λ λλ‘ Via
ν€λλ₯Ό μΆκ°νλ€κ³ μ£Όμ₯ν©λλ€. rfc2616/rfc2616-sec14.html#sec14.38
λΆννλ @mathiasverhoeven μ μ΄λ€ μ΄μ λ‘ PRμ
ν€λμ μμ ν€-κ° μμΌλ‘ μ§μ ν μ μλ --set-headers
μμμ κ°μ΄ μ¬κΈ°μ λ μΌλ°μ μΈ μ΅μ
μ κ°λ κ²μ΄ λΆκ°λ₯ν©λκΉ? λΉ κ°μ ν€λλ₯Ό μμ ν μλ΅ν©λλ€.
νμ¬ Server
λ₯Ό μ‘°μ νκ³ μΆμ§λ§ X-Product: MyProduct
μ κ°μ μλ΅ ν€λλ₯Ό νλ λ μΆκ°νκ³ μΆμ΅λλ€.
@mathiasverhoeven μ PR μ κΈ°λ°μΌλ‘ 무μΈκ°λ₯Ό ν¨κ» λμ§ μ μμ΅λλ€. @benoitc μ @tilgovi μ΄λ»κ² μκ°νμΈμ?
https://www.fastly.com/blog/headers-we-dont-wantμ μ΄κ²μ λ¨κ²¨ λ‘λλ€ Server
ν€λλ λ§€μ° μΌλ°μ μ΄κ³ μμ ν λΆνμν©λλ€.
λν Server ν€λλ₯Ό μλ΅ν μ μκΈ°λ₯Ό λ°λλλ€. λλ HiawathaλΌλ 보μ μ€μ¬ μΉ μλ²λ₯Ό μ¬μ©νμ¬ μ체 μλ² ν€λλ₯Ό μΆκ°νμ§ μλλ‘ μ€μ νμ¬ μ νλ‘μλ₯Ό μ¬μ©νλ―λ‘ gunicornμ Server ν€λκ° νμ¬ ν΄λΌμ΄μΈνΈμ μ λ¬λκ³ μμ΅λλ€.
@tuukkamustonen μ μμ΄λμ΄λ λμκ² μ’κ² λ€λ¦½λλ€. :)
νΈμ§: λ°©κΈ https://github.com/benoitc/gunicorn/pull/1617μ 보μμ΅λλ€ server_tokens = true|false|string
μ(λ) μ’μ΅λλ€.
νλΌμ€ν¬λ₯Ό μ€ννλ μ¬λμ΄ μμ΅λκΉ? https://stackoverflow.com/a/46858238/452210 μ process_response
λν λ° μ¬μ μλ₯Ό μ μνκ³ ν€λλ₯Ό κ΅μ²΄νκ±°λ μ κ±°ν©λλ€.
λν Server ν€λλ₯Ό μλ΅ν μ μκΈ°λ₯Ό λ°λλλ€. λλ HiawathaλΌλ 보μ μ€μ¬ μΉ μλ²λ₯Ό μ¬μ©νμ¬ μ체 μλ² ν€λλ₯Ό μΆκ°νμ§ μλλ‘ μ€μ νμ¬ μ νλ‘μλ₯Ό μ¬μ©νλ―λ‘ gunicornμ Server ν€λκ° νμ¬ ν΄λΌμ΄μΈνΈμ μ λ¬λκ³ μμ΅λλ€.
λλ μ¬μ§μ΄ cloudflareκ° μλ² ν€λλ₯Ό νμνκ³ μλ€λ κ²μ μμμ°¨λ Έκ³ , κ·Έλμ μμ¦μ λͺ μ±λ³΄λ€ 보μμ΄ λ μ€μνμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
λͺ λ Ήμ€μ΄λ ꡬμ±μ λ€λ₯Έ μ΅μ μ μΆκ°νλ λμ ν€λμμ λ²μ μ μ κ±°νκΈ°λ§ νλ©΄ λ©λλ€. κ·Έλ° λ€μ κ΅¬μ± νμΌ μ μ© μ€μ μ μΆκ°νμ¬ server_tokenμ μ κ±°νμμμ€. κ·Έκ²μ μ₯μ μ μ λ²μ μΌλ‘ μ μμ μΌλ‘ μ κ·Έλ μ΄λνλ μλ²κ° μλΉμ€λ₯Ό μ€μ§νμ§ μκ³ ν΄λΉ μ€μ μ μΆκ°ν μ μλ€λ κ²μ λλ€. μκ°?
λλ μ¬μ§μ΄ cloudflareκ° μλ² ν€λλ₯Ό νμνκ³ μλ€λ κ²μ μμμ°¨λ Έκ³ , κ·Έλμ μμ¦μ λͺ μ±λ³΄λ€ 보μμ΄ λ μ€μνμ§ μ λͺ¨λ₯΄κ² μ΅λλ€.
Cloudflareμ μλΉμ€ λ° μλ² ν€λλ κ°λ³ μ¬μ΄νΈμ μλ²μ λ€λ₯Έ 컨ν μ€νΈλ₯Ό κ°μ§κ³ μλ€κ³ μκ°ν©λλ€. μ¬μ΄νΈκ° Cloudflareλ₯Ό ν΅ν΄ μ νλ‘μλλ κ²½μ° νλ‘μλ₯Ό μννλ κ²μ΄ CloudflareλΌλ μ¬μ€μ λ¬λ¦¬ μλ €μ§μ§ μμμ΅λλ€. κ·Έκ²μ λ€μμλ² λ°/λλ IP μ£Όμ λ±μ ν΅ν΄ λͺ λ°±ν©λλ€. λμ‘°μ μΌλ‘ μ 3μ μλ°©ν₯ νλ‘μκ° μλ VPSμμ μ¬μ΄νΈλ₯Ό νΈμ€ν νλ κ²μ μ μ¬μ μΌλ‘ μλ² μννΈμ¨μ΄μ HTTP ν€λλ₯Ό ν΅ν μ§μ μ μΈ μλ³μ νΌν μ μλ€λ ν¬λ§μ μ€λλ€. (λ¬Όλ‘ gunicornμ΄ λ―Έλμ μ·¨μ½μ μ΄ μλ κ²μΌλ‘ λ°νμ§λ©΄ λ¨μν μλ² ν€λλ₯Ό κ²μνλ κ²λ³΄λ€ νμ μ μ°Ύλ κ²μ΄ λ μ΄λ €μΈ κ²μ΄λΌκ³ μκ°ν©λλ€.)
λͺ λ Ήμ€μ΄λ ꡬμ±μ λ€λ₯Έ μ΅μ μ μΆκ°νλ λμ ν€λμμ λ²μ μ μ κ±°νκΈ°λ§ νλ©΄ λ©λλ€. κ·Έλ° λ€μ κ΅¬μ± νμΌ μ μ© μ€μ μ μΆκ°νμ¬ server_tokenμ μ κ±°νμμμ€. κ·Έκ²μ μ₯μ μ μ λ²μ μΌλ‘ μ μμ μΌλ‘ μ κ·Έλ μ΄λνλ μλ²κ° μλΉμ€λ₯Ό μ€μ§νμ§ μκ³ ν΄λΉ μ€μ μ μΆκ°ν μ μλ€λ κ²μ λλ€. μκ°?
μ λ§ μ’μ κ²μ λλ€. :+1: :μ½κ°_μλ_μΌκ΅΄:
μ, μ΅μν λ²μ μ μ κ±°νμμμ€. λ²μ μ λͺ μ±μ μ무 κ²λ μΆκ°νμ§ μμΌλ©° 곡격μμκ² λ§μ μκ°μ μ μ½ν©λλ€.
λ²μ μ μ κ±°ν μκ°μ λλ€. @tilgovi κ·Έκ²μ λν΄ μ΄λ€ μκ°μ΄ μμ΅λκΉ?
λλ₯Ό μν΄ μ’μ!
μ΄κ²μ μ§μ μ΄ μμ΅λκΉ? μ΄κ²μ 보μμ μν λΉ λ₯Έ μΉλ¦¬μ²λΌ 보μ λλ€.
κ·Έκ²μ λ€μ 20.1μ μΌλΆκ° λ κ²μ λλ€
λ²μ μ μ κ±°ν μκ°μ λλ€.
μλ² ν€λλ₯Ό μμ ν μ κ±°νλ κ΅¬μ± νμΌ μ μ© μ€μ μ΄ μμ§ κ³νλμ΄ μμ΅λκΉ?
@DavidOliver μ μ§λ¬Έ
@benoitc λ΄κ° μΈμ©ν κ·νμ μ견μ "κ·Έλ₯"/μ κ±°λ λ²μ λ²νΈλ§ μλ―Ένλ κ²μΌλ‘ ν΄μλ μ μλ λ°λ©΄, λν μ΄λ°μ μλ² ν€λλ₯Ό μμ ν μ κ±°νλ μ€μ (μ κ° νκ³ μΆμ΅λλ€)μ κ³ λ € μ€μ λλ€.
κ°μ¬ ν΄μ.
μλ² ν€λλ₯Ό μμ ν μ κ±°ν μ μλ€λ©΄ κ·Έλ κ² ν΄μΌ ν©λλ€.
λλ κ·Έκ²μ μ κ±°νλ κ²μ΄
보μ. μ§λ 10λ
λμ λ¬Έμ κ° λμ§ μμμ΅λλ€. 보μ
λͺ¨νΈν¨λ λμμ΄ λμ§ μμ΅λλ€. λ¬Έμ κ° μλ€λ κ²μ μκ³ μΆμ΅λλ€.
κ·Έκ²μ κ³ μΉλ€. λν μλ²λ₯Ό μλ©΄ μμ
μ λμμ΄ λ μ μμ΅λλ€.
μ΄ λ²μ μ΄ μ 곡νλ νμ¬ λ²μ μ μ κ±°νλ κ²½ν₯μ΄ μμ΅λλ€.
μλ² μ μ§ κ΄λ¦¬ λ°©λ²μ λν μ λ³΄κ° λ무 λ§μ΅λλ€. μ°λ¦¬λ κ·Έκ²μν΄μΌν©λλ€
μ°λ¦¬κ° μ μ§ ν κ° μ§μ .
μκ°?
λ² λμ
2019λ 12μ 29μΌ μΌμμΌ 04:23 Randall Leeds [email protected]μμ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
μλ² ν€λλ₯Ό μμ ν μ κ±°ν μ μλ€λ©΄ κ·Έλ κ² ν΄μΌ ν©λλ€.
β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/benoitc/gunicorn/issues/825?email_source=notifications&email_token=AAADRIQBGN2KQRKOKLAYK43Q3AJ2PA5CNFSM4ASCOWF2YY3PNVWWK3TUL52HS4DFVREXG43VMXHJ63LNMV
λλ ꡬλ μ·¨μ
https://github.com/notifications/unsubscribe-auth/AAADRISEUFGD43CKXLV3EZTQ3AJ2PANCNFSM4ASCOWFQ
.>
λ΄ λͺ¨λ°μΌμμ 보λΈ
μλ ,
λ°μ΄ν°κ° μλ μ°κ²°μ ν΅ν΄ μλ΅μ μ 곡νκΈ° μν΄ gunicornμ μ¬μ©νκ³ μμ΅λλ€.
λΉμΈκ³ , λ΄κ° μ κ±°ν μ μλ κ²μ λ΄κ° μ§λΆν νμκ° μλ κ²μ
λλ€.
μλ² ν€λλ μμ§λ§ μμ κ²μ΄ μΆκ°λκ³ λλ‘λ
μμ κ²μ μλ¦¬μ€ ν¨ν·μ λͺ¨λ κ²μ λ΄μ μ μμμ μλ―Έν©λλ€.
λ²μ μ΄ μλ μλ² ν€λλ νμ΄λ‘λμ μ½ 1.7%μΈ 24λ°μ΄νΈμ
λλ€.
1460μ MSS λ° TLS ν€λλ₯Ό μ¬μ©ν©λλ€. μΆκ° ν¨ν· μμ΄λ
λ ν° ν¨ν·μ μμ ν μ¬μ μ‘ν΄μΌ ν κ°λ₯μ±μ΄ ν¨μ¬ λ λμ΅λλ€.
μ°κ²°μ΄ μ’μ§ μμ λ(μ격 μ₯μμ μλ μ
λ£°λ¬ λ€νΈμν¬μ κ°μ΄).
μλ‘μ΄ HTTPS μ°κ²°μμ νΈλμ
°μ΄ν¬ λ° μΈμ¦μ
κ΅νμ νμ΄λ‘λλ₯Ό μ΅λν νμ©νκ³ μμ κ²μ
무μ. μ°κ²° μ μ§, μ€λ³΅μ μ¬μ©νλ μκ·λͺ¨ λ°λ³΅ μμ²μ κ²½μ°
ν€λλ μμ²/μλ΅μ ν¨μ¬ λ ν° λΆλΆμ΄ λ©λλ€.
μ΄κ²μ ν΄λΌμ΄μΈνΈλ₯Ό λ μ€μνκ² μκ°νλ μ¬λλ€μκ²λ μ€μν μ μμ΅λλ€.
λΉμ©λ³΄λ€ μ±λ₯(μ²λ¦¬λλ³΄λ€ λκΈ° μκ°μ΄ λ§μ).
μ΄ μ¬μ© μ¬λ‘μ κ²½μ° κ°μ₯ μ μ©ν μ΅μ
μ
λ¨μν κ°μ μ κ±°νλ κ²μ΄ μλλΌ ν€λλ₯Ό μμ ν μ κ±°νμμμ€.
λλ λ²μ λΆλΆ.
μ΄ μ견μ λλΆλΆ κ΄λ ¨ μ°Έμ‘°/μ¬μ/RFC μ 보λ₯Ό μΆκ°νλ κ²μΌλ‘ μ νλλ©° (λ°λΌκ±΄λ) λλΆλΆ μκ²¬μ΄ μλ ν΄μ/μ£Όμμ λλ€.
RFC7231 νμ΄νΌν μ€νΈ μ μ‘ νλ‘ν μ½(HTTP/1.1): μλ―Έ λ° μ½ν μΈ https://tools.ietf.org/html/rfc7231#section -7.4.2
...μλ³Έ μλ²λ μλ΅μμ μλ² νλλ₯Ό μμ±ν μ μμ΅λλ€(MAY).
μλ³Έ μλ²λ λΆνμνκ² μΈλΆνλ μΈλΆ μ 보λ₯Ό ν¬ν¨νλ μλ² νλλ₯Ό μμ±ν΄μλ μ λλ©° μ 3μμ νμ μ ν μΆκ°λ₯Ό μ νν΄μΌ ν©λλ€(SHOULD). μ§λμΉκ² κΈΈκ³ μμΈν μλ² νλ κ°μ μλ΅ λκΈ° μκ°μ μ¦κ°μν€κ³ 곡격μκ° μλ €μ§ λ³΄μ νμ μ (μ½κ°) λ μ½κ² μ°Ύκ³ μ μ©ν μ μλ λ΄λΆ ꡬν μΈλΆ μ 보λ₯Ό μ μ¬μ μΌλ‘ λλ¬λ λλ€.
https://tools.ietf.org/html/rfc7231#section -9.6
9.6. μ ν μ 보 곡κ°
User-Agent(μΉμ 5.5.3), Via([RFC7230]μ μΉμ 5.7.1) λ° Server(μΉμ 7.4.2) ν€λ νλλ μ’ μ’ κ°κ°μ λ°μ μμ μννΈμ¨μ΄ μμ€ν μ λν μ 보λ₯Ό λνλ λλ€. μ΄λ‘ μ μΌλ‘ μ΄κ²μ 곡격μκ° μλ €μ§ λ³΄μ νμ μ λ μ½κ² μ μ©ν μ μλλ‘ ν©λλ€. μ€μ λ‘ κ³΅κ²©μλ μ¬μ© μ€μΈ λͺ λ°±ν μννΈμ¨μ΄ λ²μ μ κ΄κ³μμ΄ λͺ¨λ μ μ¬μ μΈ νμ μ μλνλ κ²½ν₯μ΄ μμ΅λλ€. λ€νΈμν¬ λ°©νλ²½μ ν΅ν΄ ν¬νΈ μν μ νλ νλ‘μλ λ°©νλ²½ λ€μ μλ νΈμ€νΈλ₯Ό μλ³ν μ μλ ν€λ μ 보 μ μ‘κ³Ό κ΄λ ¨νμ¬ νΉλ³ν μλ°© μ‘°μΉλ₯Ό μ·¨ν΄μΌ ν©λλ€. Via ν€λ νλλ₯Ό μ¬μ©νλ©΄ μ€κ°μκ° λ―Όκ°ν μμ€ν μ΄λ¦μ κ°λͺ μΌλ‘ λ°κΏ μ μμ΅λλ€.
(λ μ΄μ μ¬μ©λμ§ μμ) RFC2616μμ:
15.1.2 λ―Όκ°ν μ 보μ μ μ‘
μΌλ° λ°μ΄ν° μ μ‘ νλ‘ν μ½κ³Ό λ§μ°¬κ°μ§λ‘ HTTPλ μ μ‘λλ λ°μ΄ν°μ λ΄μ©μ μ‘°μ ν μ μμΌλ©° μ£Όμ΄μ§ μμ²μ 컨ν μ€νΈ λ΄μμ νΉμ μ 보μ λ―Όκ°λλ₯Ό κ²°μ νλ μ νμ λ°©λ²λ μμ΅λλ€. λ°λΌμ μμ© νλ‘κ·Έλ¨μ ν΄λΉ μ 보 μ 곡μμκ² κ°λ₯ν ν μ΄ μ 보μ λν λ§μ μ μ΄λ₯Ό μ 곡ν΄μΌ ν©λλ€(SHOULD). 4κ°μ ν€λ νλλ μ΄ μ»¨ν μ€νΈμμ νΉλ³ν μΈκΈν κ°μΉκ° μμ΅λλ€: Server, Via, Referer λ° From.
μλ²μ νΉμ μννΈμ¨μ΄ λ²μ μ 곡κ°νλ©΄ μλ² μμ€ν μ΄ λ³΄μ νμ μ ν¬ν¨νλ κ²μΌλ‘ μλ €μ§ μννΈμ¨μ΄μ λν 곡격μ λ μ·¨μ½ν΄μ§ μ μμ΅λλ€. ꡬνμλ μλ² ν€λ νλλ₯Ό κ΅¬μ± κ°λ₯ν μ΅μ μΌλ‘ λ§λ€μ΄μΌ ν©λλ€(SHOULD).
PEP3333 Python μΉ μλ² κ²μ΄νΈμ¨μ΄ μΈν°νμ΄μ€ v1.0.1 https://www.python.org/dev/peps/pep-3333/#the -start-response-callable
μΌλ°μ μΌλ‘ μλ² λλ κ²μ΄νΈμ¨μ΄λ μ¬λ°λ₯Έ ν€λκ° ν΄λΌμ΄μΈνΈμ μ μ‘λλλ‘ ν μ± μμ΄ μμ΅λλ€. μ ν리μΌμ΄μ μ΄ HTTP(λλ μ ν¨ν κΈ°ν κ΄λ ¨ μ¬μ)μ νμν ν€λλ₯Ό μλ΅νλ κ²½μ° μλ² λλ κ²μ΄νΈμ¨μ΄λ ν€λλ₯Ό μΆκ°ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄ HTTP Date: λ° Server: ν€λλ μΌλ°μ μΌλ‘ μλ² λλ κ²μ΄νΈμ¨μ΄μμ μ 곡ν©λλ€.
Apache HTTPD ServerTokens
μ κ°μ μ΄μ λν λ§μ μ견: https://httpd.apache.org/docs/2.4/mod/core.html#servertokens
ServerTokensλ₯Ό μ΅μκ° λ―Έλ§μΌλ‘ μ€μ νλ κ²μ μνΈ μ΄μ©μ± λ¬Έμ λ₯Ό λλ²κ·ΈνκΈ° μ΄λ ΅κ² λ§λ€κΈ° λλ¬Έμ κΆμ₯λμ§ μμ΅λλ€. λν Server: ν€λλ₯Ό λΉνμ±νν΄λ μλ² λ³΄μμ΄ κ°νλμ§ μμ΅λλ€. "μνΈλ₯Ό ν΅ν μ보"λΌλ μκ°μ μ νμ΄λ©° μλͺ»λ μμ μμμΌλ‘ μ΄μ΄μ§λλ€.
μλ² ν€λλ₯Ό gunicorn
λ‘ λ³κ²½νλ κ²μ μ€μ©μ μΈ μ루μ
μ΄λ©° κ΅¬μ± μμ΄ κ·Έλ κ² ν΄μΌ νλ€κ³ μκ°ν©λλ€.
λͺ¨λ μ μ‘μ ν¬κΈ°λ₯Ό μ΅μ ννλ €λ @kmichel-sereemaμ κ°μ μ¬λλ€μ μ¬κΈ°κ° κ·Έλ° λ―ΈμΈ μ΅μ νλ₯Ό μννλ κ³³μ΄ μλλΌκ³ μκ°ν©λλ€. HTTP ν€λκ° λ무 λ§μ μ€λ²ν€λλΌλ©΄ HTTP 1.xλ μ¬μ©νκΈ°μ μ΄μμ μΈ νλ‘ν μ½μ΄ μλλ©° μλ² ν€λλ₯Ό λ³κ²½νκ±°λ λΉνμ±νν μ μλλ‘ μΆκ° ꡬμ±μ μΆκ°ν΄μΌ νλ€κ³ μκ°νμ§ μμ΅λλ€.
@tilgovi μ μ μμ λμκ² μ’μ μ μΆ©μμ²λΌ 보μ λλ€.
λ§μ νκ²½μμ μ΄κ²μ μ¬μ§μ΄ 무μλ―Έν μλ μμ΅λλ€. gunicorn λ°°ν¬ λ¬Έμ μμλ gunicorn μμ nginxμ κ°μ νλ‘μ μλ²λ₯Ό μλ² μλ΅ ν€λ λ₯Ό
@tilgovi & @jamaddenμ μ μ μκ³Ό μ견μ λ°λΌ #2233μ λν μ΄ νΈμλ₯Ό μ’ λ£ν©λλ€. μ½λμ μ견μ κ°μ¬λ립λλ€!
κ°μ₯ μ μ©ν λκΈ
λΆννλ @mathiasverhoeven μ μ΄λ€ μ΄μ λ‘ PRμ
ν€λμ μμ ν€-κ° μμΌλ‘ μ§μ ν μ μλ
--set-headers
μμμ κ°μ΄ μ¬κΈ°μ λ μΌλ°μ μΈ μ΅μ μ κ°λ κ²μ΄ λΆκ°λ₯ν©λκΉ? λΉ κ°μ ν€λλ₯Ό μμ ν μλ΅ν©λλ€.νμ¬
Server
λ₯Ό μ‘°μ νκ³ μΆμ§λ§X-Product: MyProduct
μ κ°μ μλ΅ ν€λλ₯Ό νλ λ μΆκ°νκ³ μΆμ΅λλ€.@mathiasverhoeven μ PR μ κΈ°λ°μΌλ‘ 무μΈκ°λ₯Ό ν¨κ» λμ§ μ μμ΅λλ€. @benoitc μ @tilgovi μ΄λ»κ² μκ°νμΈμ?