Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTTP/1.1 -> SPDY/3.1 -> HTTP/2

HTTP/1.1 -> SPDY/3.1 -> HTTP/2

Tatsuhiko Kubo

April 14, 2015
Tweet

More Decks by Tatsuhiko Kubo

Other Decks in Technology

Transcript

  1. HTTP/1.1 -> SPDY/3.1 -> HTTP/2
    Tatsuhiko [email protected]
    http2 RFCൃߦه೦[email protected]/04/14

    View Slide

  2. ࣗݾ঺հ
    • ٱอୡ඙(Tatsuhiko Kubo)
    [email protected]
    • Software Engineer in Infrastructure Engineering
    • Mercari, Inc.

    View Slide

  3. is
    powered by SPDY/3.1(nginx)

    View Slide

  4. OSS࡞ͬͨΓίϯτϦϏϡʔτͨ͠Γ

    View Slide

  5. Agenda
    • HTTP/1.1Ͱ௨৴͢ΔWebαΠτͷύϑΥʔϚϯενϡʔχϯά
    • ↑Λ΍্ͬͨͰHTTP/2Խͯ͠Έͨ
    • ࣮ࡍͷWebΞϓϦέʔγϣϯ(Zabbix)Λݩʹܭଌ
    • Google Develper ToolsͰܭଌ
    • ࠨԼͷεςʔλεόʔʹදࣔ͞ΕͯΔ΍ͭ

    View Slide

  6. ೔ຊ͔Βւ֎ͷZabbix dashboardʹΞΫηε

    View Slide

  7. Client
    • MacBookPro
    • Google Chrome
    • HTTP/2༗ޮ
    • ϒϥ΢βΩϟογϡ͸ৗʹແޮˣ

    View Slide

  8. Server(ॳظঢ়ଶ)
    • Apache(prefork) + mod_php
    • த਎͸Zabbix
    • KeepAlive Off
    • gzipѹॖແޮ
    • TLS Session Cache & Tickets༗ޮ

    View Slide

  9. Server(ॳظঢ়ଶ)
    "QBDIF
    1PSU
    HTTPS
    Server
    (PPHMF"VUI1SPYZ
    "QBDIF
    1PSU
    SSLऴ୺ Ϣʔβೝূ Zabbix

    View Slide

  10. ύϑΥʔϚϯε(ॳظঢ়ଶ)
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,#
    -PBE5JNF TFD
    %0.$POUFOU-PBE
    FE5JNF
    TFD

    View Slide

  11. νϡʔχϯά ͦͷ1
    KeepAlive On
    KeepAliveΛ༗ޮʹ͢Δ

    View Slide

  12. ύϑΥʔϚϯε
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,# ,# ,#
    -PBE5JNF TFD TFD TFD
    %0.$POUFOU-PBE
    FE5JNF
    TFD TFD TFD

    View Slide

  13. νϡʔχϯά ͦͷ2

    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/js
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json-rpc

    gzipѹॖΛ༗ޮʹ͢Δ

    View Slide

  14. ύϑΥʔϚϯε
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,# ,# ,#
    -PBE5JNF TFD TFD TFD
    %0.$POUFOU-PBEF
    E5JNF
    TFD TFD TFD

    View Slide

  15. νϡʔχϯάͦͷ3
    "QBDIF
    1PSU
    HTTPS
    Server
    (PPHMF"VUI1SPYZ
    "QBDIF
    1PSU
    SSLऴ୺ Ϣʔβೝূ Zabbix
    OHJOY
    1PSU
    SSLऴ୺ΛnginxͰߦ͏

    View Slide

  16. νϡʔχϯάͦͷ3
    # nginx.conf
    # in main context
    worker_processes auto;
    tcp_nopush on;
    keepalive_timeout 65s;
    open_file_cache max=1000 inactive=20s;
    ssl_session_cache shared:SSL:30m;
    gzip on;
    gzip_comp_level 9;
    gzip_types text/css text/plain text/js
    text/javascript application/javascript
    application/json-rpc;
    # in event context
    accept_mutex_delay 100ms; # in event context
    ੩తϑΝΠϧ͸શ෦nginxͰ഑৴͢Δ

    View Slide

  17. ύϑΥʔϚϯε
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,# ,# ,#
    -PBE5JNF TFD TFD TFD
    %0.$POUFOU-PBEF
    E5JNF
    TFD TFD TFD

    View Slide

  18. νϡʔχϯάͦͷ4
    listen 443 ssl spdy;
    SPDY/3.1Λ༗ޮʹ͢Δ

    View Slide

  19. ύϑΥʔϚϯε
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,# ,# ,#
    -PBE5JNF TFD TFD TFD
    %0.$POUFOU-PBEF
    E5JNF
    TFD TFD TFD

    View Slide

  20. νϡʔχϯάͦͷ5
    HTTPS
    Server
    (PPHMF"VUI1SPYZ
    "QBDIF
    1PSU
    SSLऴ୺ Ϣʔβೝূ Zabbix
    OHJOY
    1PSU
    SSLऴ୺Λh2o(HTTP/2)Ͱߦ͏
    IP
    1PSU

    View Slide

  21. ͳ͓ɺh2o͸gzipѹॖΛ
    αϙʔτ͍ͯ͠ͳ͍ͷͰ
    gzipѹॖ͸ApacheͰߦ͍·ͨ͠
    (gzipѹॖࡁΈϑΝΠϧͷ഑৴͸Ͱ͖ΔΑ)

    View Slide

  22. ύϑΥʔϚϯε
    ߲໨໊ ܭଌ஋
    લճ
    ͱͷൺֱ
    ॳظঢ়ଶ
    ͱͷൺֱ
    3FDFJWFESFRVFTUT
    %BUB5SBOTGFS ,# ,# ,#
    -PBE5JNF TFD TFD TFD
    %0.$POUFOU-PBEF
    E5JNF
    TFD TFD TFD

    View Slide

  23. ·ͱΊ
    • WebαΠτ(Zabbix)ΛHTTPαʔόͷνϡʔχϯά͚ͩͰ଎ͯ͘͠Έͨ
    • 4ඵ͔͔ͬͯͨWebϖʔδͷϩʔυ͕1ඵʹͳͬͨ
    • h2o+HTTP/2ͱnginx+SPDY/3.1Ͱ΄΅ಉ͡
    • సૹྔ͸SPDY/3.1ͷ࣌ͱൺ΂ͯ7KBݮগ
    • ϔομѹॖ(HPACK)͕ޮ͍ͯΔ໛༷
    • CPUό΢ϯυͳϕϯνϚʔΫͳΒh2oͷํ͕଎͍͸ͣ
    • ࠓճ͸ωοτϫʔΫϨΠςϯγͷ؍఺͔Βܭଌͯ͠Έ·ͨ͠

    View Slide