{"id":1438,"date":"2019-10-26T01:55:14","date_gmt":"2019-10-25T16:55:14","guid":{"rendered":"https:\/\/oboki.net\/workspace\/?p=1438"},"modified":"2019-10-28T00:13:45","modified_gmt":"2019-10-27T15:13:45","slug":"httpd-http-2-%ec%84%a4%ec%a0%95","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/system\/network\/httpd-http-2-%ec%84%a4%ec%a0%95\/","title":{"rendered":"[httpd] http\/2 \uc124\uc815"},"content":{"rendered":"<h1>[httpd] http\/2 \uc124\uc815<\/h1>\n<h2>http\/2<\/h2>\n<p><code>http\/1.x<\/code>\ub294 \uc694\uccad \ud558\ub098\ub2f9 \ud558\ub098\uc758 \uc751\ub2f5\uc744 \uc81c\uacf5\ud55c\ub2e4. \ud558\ub098\uc758 \ud398\uc774\uc9c0\uc5d0 \ubaa8\ub4e0 \ub9ac\uc18c\uc2a4\ub4e4\uc744 \ub54c\ub824\ub123\uc5c8\ub2e4\uba74 \ub2e8 \ud55c\ubc88\uc758 \uc694\uccad\uc73c\ub85c \uc6f9\ud398\uc774\uc9c0\ub97c \ub80c\ub354\ub9c1\ud560 \uc218 \uc788\uaca0\uc9c0\ub9cc \ub2e4\uc591\ud55c \ubaa9\uc801\uc774\ub098 \uc81c\uc57d\uc5d0 \uc758\ud574\uc11c \ub300\ubd80\ubd84\uc758 \uc6f9\ud398\uc774\uc9c0\ub4e4\uc740 \ub9ac\uc18c\uc2a4\ub4e4\uc744 \ubd84\ub9ac\uc2dc\ud0a8\ub2e4.<\/p>\n<p>\uc2a4\ud0c0\uc77c\uc2dc\ud2b8\ub098 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub4f1\uc758 \uc815\uc801\uc778 \ub9ac\uc18c\uc2a4\ub4e4\uc740 \uce90\uc2dc\ud574\ub450\uace0 \uc7ac\uc0ac\uc6a9\ud558\uba74 \ud1b5\uc2e0 \ube44\uc6a9\uc774 \uc808\uac10\ub420 \uac83\uc774\uace0 \ubbf8\ub514\uc5b4\ud30c\uc77c\ub4e4\uc740 \ub300\ubd80\ubd84 \ub2e4\uc774\ub098\ubbf9\uc774\uae30\ub54c\ubb38\uc5d0 <del>(\ubbf8\ub514\uc5b4\ub3c4 \ucf54\ub4dc\ub85c \ub123\uc744 \uc218\ub294 \uc788\uc9c0\ub9cc)<\/del> \ubd84\ub9ac\ud558\ub294\uac8c \ud3b8\ub9ac\ud558\uae30 \ub54c\ubb38\uc774 \uc544\ub2d0\uae4c<\/p>\n<p>\uc774\ub7f0 \uc0c1\ud669\uc5d0\uc11c \uae30\uc874\uc758 \ubc29\uc2dd\uc740 <code>HOL<\/code> (Head Of Line) Blocking, <code>RTT<\/code> (Round Trip Time) \uc99d\uac00\uc640 \uac19\uc740 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\ub294\ub370 \uc774\ub7f0 \ub611\ub611\ud558\uc9c0 \ubabb\ud55c \ud1b5\uc2e0 \ubc29\uc2dd\uc744 \uac1c\uc120\ud55c \uac83\uc774 http\/2 \uc774\uba70, <code>Multiplexed Streams<\/code>, <code>Proioritization<\/code>, <code>Server Push<\/code>, <code>Header compression<\/code>\uacfc \uac19\uc740 \ud575\uc2ec \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n<p><del>\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ud55c \uac74\uc529 \ucc98\ub9ac\ud558\ub294 \uac83\ubcf4\ub2e4 bulk \ucc98\ub9ac\ub97c \ud558\uba70 \uacf5\ud1b5\ub41c \ubd80\uc218\uc791\uc5c5\uc744 \ud55c\ubc88\uc5d0 \ub05d\ub0b4\uace0, \uac19\uc740 \uc791\uc5c5\uc5d0 \ub300\ud574 \ud6a8\uc728\uc774 \uc88b\uc740 \uc555\ucd95\uc744 \uc0ac\uc6a9\ud558\ub294 \ub4f1\uc758 \uac1c\ub150\uc778 \uac83 \uac19\ub2e4.<\/del><\/p>\n<h2>\uc124\uce58<\/h2>\n<p>\uae30\uc874 http\/1.x \ud45c\uc900\uc744 \ub300\uccb4\ud558\ub294 \uac83\uc774 \uc544\ub2c8\uae30\ub54c\ubb38\uc5d0 \uc6b4\uc601\ud558\uace0 \uc788\ub294 \uc6f9\uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 http\/2 \ub97c \uc9c0\uc6d0\ud55c\ub2e4\uba74 \uad73\uc774 http\/2 \ub97c \uc774\uc6a9\ud558\uc9c0 \uc54a\uc744 \uc774\uc720\uac00 \uc5c6\ub294 \uac83 \uac19\uc544\uc11c \uc9d1\uc5d0\uc11c \uc6b4\uc601\ud558\ub294 httpd\uc5d0 \uc801\uc6a9\ud574\ubcf8\ub2e4.<\/p>\n<p>\ud65c\uc131\ud654 \ubc29\ubc95\uc740 <a href=\"https:\/\/httpd.apache.org\/docs\/trunk\/howto\/http2.html\">https:\/\/httpd.apache.org\/docs\/trunk\/howto\/http2.html<\/a> \uc5d0 \uc790\uc138\ud788 \ub098\uc640\uc788\uc9c0\ub9cc <code>httpd.conf<\/code> \uc5d0 \uc544\ub798 \ubaa8\ub4c8\uc744 \ubd88\ub7ec\uc624\uae30\ub9cc \ud558\uba74 \ub418\ub294\ub370<\/p>\n<pre><code class=\"language-conf\">LoadModule http2_module modules\/mod_http2.so\nProtocolsHonorOrder On\nProtocols h2 h2c http\/1.1<\/code><\/pre>\n<p>\ud574\ub2f9 \ubaa8\ub4c8\uc774 \ube4c\ub4dc\uac00 \ub3fc \uc788\uc9c0 \uc54a\uc544\uc11c httpd \ub97c \ucc98\uc74c\ubd80\ud130 \ub2e4\uc2dc \uc124\uce58\ud588\ub2e4.<\/p>\n<p>nghttp2 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uba3c\uc800 \uc124\uce58\ud558\uace0<\/p>\n<pre><code class=\"language-bash\">yum -y install libnghttp2 libnghttp2-devel<\/code><\/pre>\n<p>\uc544\ub798 \uc635\uc158\uc744 \ucd94\uac00\ud574 \ub2e4\uc2dc \uc124\uce58\ud55c\ub2e4.<\/p>\n<p><code>\u2013with-mpm=event \u2013enable-http2<\/code><\/p>\n<p>mpm\uc740 prefork \ubc29\uc2dd\uc73c\ub85c \ud588\uc744 \ub54c \uc0b4\uc9dd \ubb38\uc81c\uac00 \ub420 \uc218\ub3c4 \uc788\ub2e4\uace0 \ud55c \uac83 \uac19\uc544 \uad8c\uc7a5\ud558\ub294\ub300\ub85c event \ud615\ud0dc\ub85c \ubcc0\uacbd\ud588\ub2e4.<\/p>\n<pre><code class=\"language-bash\">.\/configure \\\n--prefix=\/usr\/local\/2.4.27 \\\n--with-apr=\/usr\/local\/apr \\\n--with-apr-util=\/usr\/local\/apr-util \\\n--with-pcre=\/usr\/local\/pcre \\\n--enable-module=shared \\\n--enable-so \\\n--enable-mods-shared=ssl \\\n--with-ssl=\/usr\/local\/openssl \\\n--enable-ssl=shared \\\n--enable-rewrite \\\n--with-mpm=event \\\n--enable-http2<\/code><\/pre>\n<p>\uc544\ub798\uc640 \uac19\uc774 \ubaa8\ub4c8\uc744 \ubd88\ub7ec\uc624\uba74<\/p>\n<pre><code class=\"language-conf\">LoadModule http2_module modules\/mod_http2.so\n&lt;IfModule http2_module&gt;\n    ProtocolsHonorOrder On\n    Protocols h2 h2c http\/1.1\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>\ub05d\uc77c \uc904 \uc54c\uc558\ub294\ub370 apxs\ub85c \uc124\uce58\ud588\ub358 php \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub0a0\uc544\uac00\uc11c php\ub791 php \ud655\uc7a5\ub4e4\ub3c4 \ub2e4\uc2dc \uc124\uce58\ud588\uace0, httpd mod_wsgi \ub3c4 \ub2e4\uc2dc \uc124\uce58\ud574\uc57c\ub9cc \ud588\ub2e4.<\/p>\n<p>\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uac1c\ubc1c\uc790 \ub3c4\uad6c\ub85c \ud655\uc778\ud588\uc744 \ub54c\uc5d0\ub294 <code>http\/2+quic\/46<\/code> \ud504\ub85c\ud1a0\ucf5c\ub85c \uc811\uc18d\ud558\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc5c8\uace0, access_log \uc5d0\uc11c\ub3c4 \uc544\ub798\uc640 \uac19\uc774 \ucc0d\ud78c\ub2e4.<\/p>\n<pre><code class=\"language-log\">00.000.00.00 - - [26\/Oct\/2019:00:00:00 +0900] &quot;GET \/workspace\/........ HTTP\/2.0&quot; 200 29064<\/code><\/pre>\n<p>nextcloud\ub97c \uc880 \ub354 \uc368\ubcf4\uba74\uc11c http\/2 \uc801\uc6a9\ud55c \uac8c \uc131\ub2a5 \uccb4\uac10\uc774 \ub418\ub294\uc9c0\ub294 \ubd10\uc57c\ud560 \uac83 \uac19\ub2e4.<\/p>\n<h2>\ucc38\uace0\uc790\ub8cc<\/h2>\n<p>http\/1.x \ubc84\uc804\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294 \ubb38\uc81c\uc640 \uc5ec\ub7ec \uac1c\ubc1c\uc790\ub4e4\uc758 \uc6b0\ud68c \ubc29\ubc95\uc740 <a href=\"https:\/\/www.popit.kr\/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2\/\">https:\/\/www.popit.kr\/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2\/<\/a> \uc5d0 \uc798 \uc815\ub9ac\uac00 \ub3fc \uc788\ub2e4.<\/p>\n<p>http\/2\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uba85\uc138\ub294 \ub2e4\uc74c URL\uc744 \ucc38\uace0\ud558\uba74 \uc88b\uc744 \uac83 \uac19\ub2e4.<\/p>\n<p><a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2\/?hl=ko\">https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2\/?hl=ko<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[httpd] http\/2 \uc124\uc815 http\/2 http\/1.x\ub294 \uc694\uccad \ud558\ub098\ub2f9 \ud558\ub098\uc758 \uc751\ub2f5\uc744 \uc81c\uacf5\ud55c\ub2e4. \ud558\ub098\uc758 \ud398\uc774\uc9c0\uc5d0 \ubaa8\ub4e0 \ub9ac\uc18c\uc2a4\ub4e4\uc744 \ub54c\ub824\ub123\uc5c8\ub2e4\uba74 \ub2e8 \ud55c\ubc88\uc758 \uc694\uccad\uc73c\ub85c \uc6f9\ud398\uc774\uc9c0\ub97c \ub80c\ub354\ub9c1\ud560 \uc218 \uc788\uaca0\uc9c0\ub9cc \ub2e4\uc591\ud55c \ubaa9\uc801\uc774\ub098 \uc81c\uc57d\uc5d0 \uc758\ud574\uc11c \ub300\ubd80\ubd84\uc758 \uc6f9\ud398\uc774\uc9c0\ub4e4\uc740 \ub9ac\uc18c\uc2a4\ub4e4\uc744 \ubd84\ub9ac\uc2dc\ud0a8\ub2e4. \uc2a4\ud0c0\uc77c\uc2dc\ud2b8\ub098 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub4f1\uc758 \uc815\uc801\uc778 \ub9ac\uc18c\uc2a4\ub4e4\uc740 \uce90\uc2dc\ud574\ub450\uace0 \uc7ac\uc0ac\uc6a9\ud558\uba74 \ud1b5\uc2e0 \ube44\uc6a9\uc774 \uc808\uac10\ub420 \uac83\uc774\uace0 \ubbf8\ub514\uc5b4\ud30c\uc77c\ub4e4\uc740 \ub300\ubd80\ubd84 \ub2e4\uc774\ub098\ubbf9\uc774\uae30\ub54c\ubb38\uc5d0 (\ubbf8\ub514\uc5b4\ub3c4 \ucf54\ub4dc\ub85c \ub123\uc744 \uc218\ub294 \uc788\uc9c0\ub9cc) \ubd84\ub9ac\ud558\ub294\uac8c \ud3b8\ub9ac\ud558\uae30 \ub54c\ubb38\uc774 \uc544\ub2d0\uae4c \uc774\ub7f0 \uc0c1\ud669\uc5d0\uc11c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-1438","post","type-post","status-publish","format-standard","hentry","category-network"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=1438"}],"version-history":[{"count":0,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/1438\/revisions"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=1438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=1438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=1438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}