server

ต้องการเปลี่ยนเครื่องเซิร์ฟเวอร์ที่ใช้รัน Drupal จึงทดลองทดสอบเปรียบเทียบ Web Server และโปรแกรมที่ใช้รัน php รุ่นต่าง ๆ ไว้ดังนี้

  1. apache2-mpm-prefork libapache2-mod-php5
  2. apache2-mpm-worker libapache2-mod-fcgid php5-cgi
  3. lighttpd php5-cgi
  4. nginx php5-cgi spawn-fcgi

สมบัติ

  • เครื่อง: cpu E5200 ram 2G
  • os: Debian Squeeze 2.6.32-5-xen-amd64
  • mysql-server: 5.1.49-3
  • apache2: 2.2.16-4
  • lighttpd: 1.4.28-1
  • nginx: 0.7.67-3
  • php-apc: 3.1.3p1-2
  • สมมุติว่าลง Drupal ไว้ที่ /var/www/example.com/drupal

Google calendar นั้นมีบริการส่ง SMS ไปยังโทรศัพท์มือถือของผู้ใช้ เพื่อแจ้งเตือนกิจกรรม ต่าง ๆ ในปฏิทิน โดยผู้ใช้ต้องยืนยันตัวตนกับ Google ก่อน การส่ง SMS เตือนนั้นจะมีค่าโดยปริยายคือ เตือนล่วงหน้า 10 นาที

ในบทความนี้เราจะสร้าง shell script ที่ใช้ส่ง SMS โดยความต้องการพื้นฐานมีดังนี้

  • ยืนยันตัวตนและหมายเลขโทรศัพท์มือถือกับ Google calendar
  • ติดตั้งโปรแกรม ntpdate เพื่อใช้ปรับเวลาเครื่องให้ตรง
  • ติดตั้งโปรแกรม gcalcli ซึ่งใช้ในการติดต่อกับ Google calendar

ในส่วนการยืนยันตัวตนและหมายเลขโทรศัพท์มือถือนั้น จะไม่กล่าวถึง

เริ่มด้วยติดตั้งโปรแกรม ntpdate และ gcalcli

$ sudo aptitude install ntpdate gcalcli

จากนั้นสร้าง shell script ที่ใช้ส่ง SMS

$ vi sms.sh

WebVZ เป็นโปรแกรมจัดการ OpenVZ แบบ web based ตอนนี้ยังทำอะไรไม่ได้มาก แต่ติดตั้งไว้ก็ดี เผื่อทำงานอะไรเล็ก ๆ น้อย ๆ

สมมุติว่าเครื่องหลักมีไอพี 192.168.1.31

Xen เป็นซอฟต์แวร์ที่ใช้ทำ virtualization ในทางทฤษฎีสามารถรัน guest OS ใด ๆ ก็ได้ โดยมีข้อแม้คือ ซีพียูต้องรองรับการทำ virtualization ด้วย แต่ถ้าซีพียูไม่รองรับ ต้องใช้กับ OS ที่ดัดแปลงให้ใช้กับ Xen เท่านั้น

ข้อดีคือ เร็วพอควร และสามารถ swap หน่วยความจำได้ ทำให้ใช้งานได้เหมือนในระบบลินุกซ์ปกติ

OpenVZ เป็นซอฟต์แวร์ที่ใช้ทำ virtualization ที่ใช้กับลินุกซ์เท่านั้น มีข้อแตกต่างจาก xen ตรงที่ใช้เพียงเคอร์เนลเดียว

ข้อดีคือ เร็วและพร้อมใช้

ข้อเสียคือ ไม่มีการ swap หน่วยความจำ ถ้าหน่วยความจำเต็ม โพรเซสที่มาทีหลังจะตายหมด

(แต่ก็ยังมีข้อดีในข้อเสีย คือ openvz จะบริหารการสลับหน่วยความจำระหว่าง guest OS อย่างมีประสิทธิภาพ และโพรเซสที่รันอยู่ก่อนที่หน่วยความจำจะเต็ม จะยังคงได้ความเร็วที่เกือบคงที่)

approx เป็นซอฟต์แวร์ที่ใช้เก็บแพกเกจ deb ที่ apt จะมาเรียกไปติดตั้ง ใครมีเครื่องลินุกซ์ที่ใช้แพกเกจ apt ในหน่วยงานตั้งแต่สองเครื่องขึ้นไป ควรติดตั้งไว้ที่เครื่องเซิร์ฟเวอร์เป็นอย่างยิ่ง

จากการทดลองใช้งานพบว่า ช้ากว่า apt-proxy (ซึ่งช่วงหลังมีปัญหาตายบ่อยมาก) แต่เสถียรกว่าเยอะ ใช้พอร์ต 9999 เป็นพอร์ตเดียวกับ apt-proxy ทำให้ปรับใช้แทน apt-proxy ได้อย่างง่ายดาย

เริ่มติดตั้ง

ที่เครื่องเซิร์ฟเวอร์

สมมุติว่าเซิร์ฟเวอร์ชื่อ server1.example.com ไอพี 192.168.1.5

เริ่มติดตั้งด้วย

Topic: 

deiban: ติดตั้งสแกนเนอร์เครือข่าย

ใช้แพกเกจชุด sane ในการทำให้แสกนเนอร์ที่ติดตั้งอยู่ที่เครื่องเซิร์ฟเวอร์ สามารถใช้งานผ่านเครือข่ายได้

ทำที่เครื่องเซิร์ฟเวอร์

สมมุติว่าชื่อ server.example.com
ไอพี 192.168.1.1
ใช้งานเครือข่ายภายใน 192.168.1.0/24
และติดตั้งสแกนเนอร์ไว้แล้ว

ติดตั้งแพกเกจ sane และ inetd

# aptitude install sane sane-utils openbsd-inetd

ปรับให้ saned ทำงาน

debian: lenny/etch
package: apache2.2 (2.2.9-10+lenny1/2.2.3-4+etch6)

สมมุติว่าเซิร์ฟเวอร์ภายนอก ชื่อ www.example.com มีการติดตั้ง apache2 ไว้แล้ว และเซิร์ฟเวอร์ภายใน ชื่อ internal.example.com มีการติดตั้ง apache2 ไว้แล้วเช่นกัน ต้องการให้ผู้ใช้ภายนอกเรียกเว็บที่ internal.example.com ได้

ทำที่เครื่องเซิร์ฟเวอร์ภายนอกอย่างเดียว โดยใช้มอดูล proxy_http

Topic: 

to webmaster: ไม่ต้อง publish ก็ได้นะครับ เพราะเป็นความรู้พื้น ๆ (ช่วงนี้ผมห่างเน็ต ค้นอะไรได้ก็ต้องรีบเขียน ไม่มีเวลาคิดมาก)

จากเรื่อง all-in-one ผมแบ่งพาร์ติชั่น /sys1 โดยผูกติดกับ / (root) ไว้ ซึ่งจะทำให้ไม่สามารถยกเลิกการเมานต์ในระหว่างการใช้งานได้
สำหรับเครื่องที่เปิดไว้ตลอด 24 ช.ม.คงไม่มีปัญหาอะไร แต่ถ้าเป็นเครื่องที่ต้องมีการปิดเปิดตามเวลา จะพบปัญหาที่ระบบไฟล์จะทำการตรวจสอบตัวเองเมื่อทำการเมานต์ครบ 30 ครั้ง ซึ่งถ้าพาร์ติชั่นไม่ใหญ่ก็คงไม่เป็นไรนัก เพราะโปรแกรม fsck ทำงานแป๊ปเดียวก็เสร็จ แต่ถ้าเป็นพาร์ติชั่นที่ใหญ่เกิน 200G ขึ้นไปจะเกิดปัญหาการบูตที่นานเกินควร

Taxonomy upgrade extras: 

ควรสงสัยไว้ก่อนว่า ข้อเขียนนี้ต้องมีที่ผิดพลาดแน่นอน หากจะทำตาม ควรมีความรู้เรื่องลินุกซ์พอควรที่จะแก้ปัญหาที่เกิดจากการผิดพลาดในข้อเขียนได้

  • เป็นการบันทึกขั้นตอนการทำงานในระหว่างการเปลี่ยนฮาร์ดดิสก์ของเซิร์ฟเวอร์
  • บางรายการใช้แพกเกจที่มีความสามารถมากไป เรียกว่าขี่ช้างจับตั๊กแตน (บางรายการก็น้อยไป)
  • บางรายการมีแพกเกจอยู่แล้ว แต่ดันมาเขียนสคริปต์เอง (อ้างว่าเพื่อเพิ่มความยืดหยุ่น)
  • เรื่องความปลอดภัยจัดอยู่ในระดับ "ตายดาบหน้า"
  • ทั้งหมดมาจากเพราะภาษาอังกฤษไม่ดีครับ อ่านเอกสารไม่ค่อยเข้าใจ เลยทำเท่าที่ทำได้ครับ

จะติดตั้งเซิร์ฟเวอร์แบบ all-in-one สำหรับใช้ในหน่วยงานเล็ก ๆ โดย

    Topic: 

    Pages

    Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
    ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้