อัพเกรด CWP เป็น http/2+PHP-FPM

หลักการต่างๆของ HTTP/2

หลักการที่สำคัญมากคือ HTTP/2 นั้นไม่ได้แก้ไขการเรียกใช้งาน HTTP ที่มีอยู่แล้ว เรื่อง high-level ยังคงเหมือนเดิมเราสามารถใช้ get post method status header field (เกือบทั้งหมด) ได้ตามปกติ เพียงแต่ HTTP/2 นั้นเป็นการวางฐานของการส่งข้อมูล HTTP ใหม่ (ระดับ transfer) ให้ดีขึ้นกว่าเดิม ดังนั้น code ของ web ต่างๆยังคงเขียนได้เหมือนเดิมไม่ต้องเปลี่ยนแปลง (compatibility เป็นเรื่องปกติที่ต้องพิจารณาในการร่าง protocol ใหม่อยู่แล้ว)

  1. Multiplexed streams

Stream แปลตรงๆตัวคือเส้นสาย มันคือสายที่ใช้ในการ transfer ข้อมูลภายใน connection อีกที โดยหนึ่ง TCP connection สามารถมีได้หลาย HTTP/2 streams แต่ละ stream สามารถส่งข้อมูลแบบ bi-directional ได้ สร้างได้ ปิดได้ อีกทั้งยังมีระบบ flow control สำหรับควบคุมปริมาณข้อมูลในแต่ละ stream อีกด้วย พูดถึงขนาดนี้ หลายคนจินตนาการว่ามันคือ mini-connection ใน TCP connection อีกทีก็ไม่ผิดครับ ตัวผมเองก็ชอบเปรียบเทียบเป็นท่อส่งข้อมูล ซึ่ง idea จะประมาณภาพข้างล่างครับ เราสามารถลด connections 3 อันให้เหลือ connection เพียงอันเดียว แล้วให้ข้างในเป็น 3 streams แทน

let’s get started

Upgrading OS to latest version :

yum clean all
yum -y update

Upgrading Autoconf :

cd /usr/local/src
rm -rf autoconf-*
wget https://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
tar zxvf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr
make && make install

Upgrading Openssl  :

cd /usr/local/src
rm -rf openssl-*
wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz
tar zxvf openssl-1.1.0i.tar.gz
cd openssl-*
./config --prefix=/usr --openssldir=/usr/lib64 shared
make && make install

Installing Nghttp2 :

nghttp2 is an implementation of HTTP/2

cd /usr/local/src
rm -rf nghttp2-*
yum install libtool -y
wget https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
tar zxvf nghttp2-1.32.0.tar.gz
cd nghttp2-*
./configure --prefix=/usr
make && make install

Rebuilding Apache with http2 support from CWP GUI :

First backup the httpd.conf

cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak

Goto Apache Settings >> Apache Re-Build >> Select Next

Next Add this flag/line at the end of the “Additional configuration” :

--enable-http2

then Click on Start Compiler in background.

After you builded Apache we need to enable HTTP/2 withing Apache config :

nano /usr/local/apache/conf.d/http2.conf

then add this line and save it :

LoadModule http2_module modules/mod_http2.so
LogLevel http2:info
Protocols h2 h2c http/1.1
service httpd restart

Leave a Reply

iameveme