[วิธีทำ] มาทำ WEB SERVER แบบ หลาย ๆ โหนด กันเถอะ ตอนที่ 3 (ลงมือทำ-ต่อ)

#1
จากตอนที่แล้ว จบไปในส่วนแชร์ไฟล์ ในส่วนนี้ เรามาติดตั้งตัว web server กันครับ
กลับมาที่เครื่อง web1 และ web2 อันนี้ ทำเหมือนกันทั้งสองเครื่อง น่ะครับ
อย่าลืม sudo -i เป็น root ก่อนน่ะครับ
Bash:
apt-get install libapache2-mod-php5  apache2 -y
แก้ไขไฟล์ /etc/apache2/mods-enabled/dir.conf
เพิ่ม index.php ตามข้างล่างเลยครับ ให้ apache รันไฟล์ index.php ก่อน
HTML:
<IfModule mod_dir.c>

          DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>
ติดตั้ง PHP Modules ส่วนผมมักจะติดตั้งเท่าที่ใช้ ก็
Bash:
apt-get install php5-curl php5-gd php5-mysql -y
แล้วติดตั้ง php5-memcache ด้วย อันนี้สำคัญมากกับระบบหลายโหนดเราครับ เพาเอาไว้เก็บ SESSION แทน ที่จะเก็บแบบเดิม ๆเป็นไฟล์ในเซิฟ
Bash:
apt-get install[I] php5-memcache[/I] -y
แล้วจัดการแก้ไข ให้ ระบบไปเรียกพาส เว็บที่เราทำการ mount ตามที่ ทำไว้ในตอนที่แล้ว มาไว้ที่ /www
แก้ไขไฟล์ /etc/apache2/sites-enabled/000-default.conf
บรรทัด DocumentRoot /var/www/html แก้เป็น DocumentRoot /www
เพิ่ม
HTML:
<Directory /www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ใต้บรรทัด DocumentRoot /www
แก้ไข php.ini ให้ เก็บค่า SESSION ไว้ใน memcached ที่เซิฟกลาง 172.30.0.197
แก้ไขไฟล์ /etc/php5/apache2/php.ini
แก้จาก session.save_handler = files
เป็น
Bash:
session.save_handler = memcache
session.save_path=”tcp://172.30.0.197:11211"
เซฟ แล้ว รัน apache ใหม่
Bash:
/etc/init.d/apache2 restart
เสร็จแล้วกลับไปที่เครื่อง server หลัก
ติดตั้ง memcache server
Bash:
apt-get install memcached -y
แก้ไขไฟล์ /etc/memcached.conf เพื่อให้รับ connection ในวงแลนได้
ค้าหาบรรทัด -l 127.0.0.1 แก้เป็น -l 172.30.0.197
เสร็จแล้วรันใหม่
Bash:
/etc/init.d/memcached restart
เหลือ ส่วนสุดท้ายล่ะครับ เสร็จไป 80 % แล้วที่เหลือ แค่ Installing HAProxy พระเอกของงานนี้
ทำที่เครื่องหลักเครื่องเดียวน่ะครับ 172.30.0.197
Bash:
apt-get install haproxy -y
แก้ไขไฟล์ /etc/default/haproxy
หา ENABLED=0 แก้เป็น ENABLED=1
เซฟค่าซะ
ทำการแบล๊คอัพไฟล์ค่าเดิมก่อน
Bash:
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.ori
แก้ไข /etc/haproxy/haproxy.cfg ลบค่าเดิมออกให้หมด แก้เป็น
ตัวอย่างนี้ ผมทำ ให้ check port 80
Bash:
global
log 127.0.0.1   local0
log 127.0.0.1   local1 notice
#log loghost    local0 info
maxconn 4096
#debug
#quiet
user haproxy
group haproxy
defaults
log     global
mode    http
option  httplog
option  dontlognull
retries 3
option redispatch
maxconn 2000
contimeout      5000
clitimeout      50000
srvtimeout      50000
listen webfarm 172.30.0.197:80
mode http
stats enable
stats uri /haproxy?stats
stats auth admin:1234
balance roundrobin
cookie JSESSIONID prefix
option httpclose
option forwardfor
option httpchk GET /check.txt
server WEB1 172.30.0.198:80 cookie A check
server WEB2 172.30.0.196:80 cookie B check
เซฟค่าจาก ค่าคอนฟิกผมทำให้เช็ค ว่าเจอไฟล์ /check.txt มั้ย เราก็สร้างไฟล์นี้ไนพาสเว็บ
Bash:
touch /data/www/check.txt
chmod 777 /data/www/check.txt
ทดสอบเข้า http://172.30.0.197 จะต้องเข้าหน้าเว็บได้ไม่มี error ใด ๆ
ทดสอบ ปิด บางเครื่องทิ้ง ระบบต้องไม่กระทบ ไม่ดาวน์
ที่เหลือก็ใส่ ไฟล์เว็บลงไปที่ /data/www จะเพิ่มโหนด ก็ปรับคอนฟิก /etc/haproxy/haproxy.cfg เอา แล้ว ก็ ลงตาม ด้านบน ก็จบครับ จะแอดเพิ่มก็ง่าย ๆ เลย
จะดู status ก็เข้า http://172.30.0.197/haproxy?stats
user admin pass 1234


จากรูป ผมปิด เว็บหนึ่งเลยเป็นสีแดง
แต่เดียวก่อน เรายังมีเคส mysql เรียกข้ามเครื่อง
ก็ไปที่เครื่องหลัก แอดยูส mysql ที่มีสิทธ์ เรียกข้ามเครื่องๆ ได้
เรามีสองเครื่องก็แอดไป ตามตัวอย่าง
Bash:
mysql -uroot -p รหัสผ่าน
ผมจะแอด ยูส แอดมิน pass 1234 เข้าได้จากวง WEB1 , WEB2
แนะนำให้พิมฑ์ตามนี้
Bash:
mysql> CREATE USER ‘admin’@’WEB1' IDENTIFIED BY ‘1234’;
mysql> CREATE USER ‘admin’@’WEB2' IDENTIFIED BY ‘1234’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’WEB1';
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’WEB2';
ทดสอบว่าใช้ได้มั้ย ไปที่เครื่อง เว็บ ติดตั้ง mysql-client
Bash:
apt-get install mysql-client -y
แล้วทดสอบคอนเน็คดู


ติดต่อ mysql ข้ามเครื่องได้แย้ววว
ตอนหน้า มาเทสโหลด กัน เป็นตอนสุดท้าย

credit : https://medium.com/@tanakornpiamsin...หนด-กันเถอะ-ตอนที่-3-ลงมือทำ-ต่อ-ead77b7cf22c
 

Top