<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
	<title>THT Articles/How-to Feed</title>
	<description>Feed from ThaiHostTalk.com Article Category</description>
	<link>http://www.thaihosttalk.com/index.php</link>
	<pubDate>Tue, 07 Feb 2012 04:58:38 +0000</pubDate>
	<ttl>120</ttl>
	<item>
		<title>การทำ IPv6 Tunnel กับ Hurricane Electric (he.net)</title>
		<link>http://www.thaihosttalk.com/topic/34682-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-ipv6-tunnel-%e0%b8%81%e0%b8%b1%e0%b8%9a-hurricane-electric-henet/</link>
		<description><![CDATA[การทำ IPv6 Tunnel กับ Hurricane Electric (he.net)<br />
<br />
<a href='http://kaekae.oas.psu.ac.th/ojs/oasej/' class='bbc_url' title='External link' rel='nofollow external'>http://kaekae.oas.psu.ac.th/ojs/oasej/</a><br />
<br />
ในที่สุดก็ตีพิมพ์สักที]]></description>
		<pubDate>Tue, 07 Feb 2012 04:58:38 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34682-%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%97%e0%b8%b3-ipv6-tunnel-%e0%b8%81%e0%b8%b1%e0%b8%9a-hurricane-electric-henet/</guid>
	</item>
	<item>
		<title>วิธีอัพเดท kernel centos 6 แบบไว</title>
		<link>http://www.thaihosttalk.com/topic/34643-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97-kernel-centos-6-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a7/</link>
		<description><![CDATA[วิธีอัพเดท kernel centos 6 แบบไว เครื่องจะ reboot ระบบ โดยไม่ต้องรอตรง bios เครื่องบ้างรุ่นมันจะเช็คนาน ทำแบบนี้จะหายไปแวบนึงแล้วกลับมาเลยครับ <img src='http://www.thaihosttalk.com/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' /><br />
แต่ uptime หายอยู่ดี แต่ช่วยลดเวลาในการ down time ครับ  ลองสลับ up down kernel ไวมาก <img src='http://www.thaihosttalk.com/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' /><br />
<br />
# uname -r<br />
2.6.32-220.2.1.el6.x86_64<br />
<br />
# yum update kernel*<br />
<br />
# yum install kexec-tools<br />
<br />
# kexec -l /boot/vmlinuz-2.6.32-220.4.1.el6.x86_64 --initrd=/boot/initramfs-2.6.32-220.4.1.el6.x86_64.img --append="`cat /proc/cmdline`"<br />
<br />
# kexec -e<br />
<br />
# uname -r<br />
2.6.32-220.4.1.el6.x86_64]]></description>
		<pubDate>Wed, 01 Feb 2012 20:54:09 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34643-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97-kernel-centos-6-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a7/</guid>
	</item>
	<item>
		<title>ติดตั้ง ionCube และ Zend ใน DirectAdmin ด้วยคำสั่งแค่บรรทัดเดียว !</title>
		<link>http://www.thaihosttalk.com/topic/34457-%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-ioncube-%e0%b9%81%e0%b8%a5%e0%b8%b0-zend-%e0%b9%83%e0%b8%99-directadmin-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b8%84%e0%b8%b3%e0%b8%aa%e0%b8%b1%e0%b9%88%e0%b8%87%e0%b9%81%e0%b8%84/</link>
		<description><![CDATA[บังเอิญไปซ่อม DA มาบ่อยๆ T_T<br />
(ใช้เองก็ไม่ได้ใช้ ต้องไปแก้ให้ชาวบ้าน) เลยได้ทริคมานิดๆ หน่อยๆ ครับ<br />
<br />
<br />
ติดตั้ง ionCube<br />
<pre class='prettyprint'>/usr/local/directadmin/custombuild/build ioncube</pre><br />
<br />
ติดตั้ง Zend<br />
<pre class='prettyprint'>/usr/local/directadmin/custombuild/build zend</pre><br />
<br />
<br />
ถ้าใช้ไม่ได้ ให้สั่งไอ้นี่ก่อนนะครับ<br />
/usr/local/directadmin/custombuild/build update_script]]></description>
		<pubDate>Wed, 11 Jan 2012 17:32:11 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34457-%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-ioncube-%e0%b9%81%e0%b8%a5%e0%b8%b0-zend-%e0%b9%83%e0%b8%99-directadmin-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b8%84%e0%b8%b3%e0%b8%aa%e0%b8%b1%e0%b9%88%e0%b8%87%e0%b9%81%e0%b8%84/</guid>
	</item>
	<item>
		<title>วิธีแก้ XENSERVER os พังแล้วต้องการดึงข้อมูลเก่ากลับมา</title>
		<link>http://www.thaihosttalk.com/topic/34187-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b9%81%e0%b8%81%e0%b9%89-xenserver-os-%e0%b8%9e%e0%b8%b1%e0%b8%87%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%94%e0%b8%b6%e0%b8%87%e0%b8%82%e0%b9%89/</link>
		<description><![CDATA[<span style='color: #FF0000'><strong class='bbc'>[ว่างๆจะมาเรียบเรียงวิธีใหม่โดยละเอียดให้นะครับ]</strong></span><br />
<br />
ติดตั้ง xen ไว้ที่อีกดิสแยก<br />
<br />
แล้วใช้คำสั่งตามนี้  UUID ดูเอาเองนะรคับให้ตรงกับHDD ของตัวเอง<br />
<br />
#vgdisplay<br />
<br />
#vgchange -ay<br />
<br />
#pvdisplay <br />
VG Name : VG_XenStorage-af6f996e-2f4c-e007-82ea-9289b3ddab80<br />
<br />
#xe sr-introduce uuid=af6f996e-2f4c-e007-82ea-9289b3ddab80 type=lvm content-type=user name-label="old disk"<br />
<br />
#xe pbd-list<br />
<br />
#xe pbd-create sr-uuid=af6f996e-2f4c-e007-82ea-9289b3ddab80  device-config:device=/dev/VG_XenStorage-af6f996e-2f4c-e007-82ea-9289b3ddab80  host-uuid=130b7d54-d561-4f5f-9ea4-f7b3ebb57b9d<br />
c4ef6861-5f62-828d-5113-9ad4b57cb4d1<br />
<br />
#xe pbd-plug   uuid=c4ef6861-5f62-828d-5113-9ad4b57cb4d1<br />
<br />
เอามาลงต่อเผื่อมีใครเป็นแบบผมอีก อิอิ<br />
<br />
<br />
ขอบคุณพี่ TOEY ที่ช่วยผมแก้มา 2 วันจนสำเร็จ ขอบคุณมากๆเลยครับ  <img src='http://www.thaihosttalk.com/public/style_emoticons/default/875328cc.gif' class='bbc_emoticon' alt=':875328cc:' />]]></description>
		<pubDate>Sat, 10 Dec 2011 18:08:49 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34187-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b9%81%e0%b8%81%e0%b9%89-xenserver-os-%e0%b8%9e%e0%b8%b1%e0%b8%87%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%94%e0%b8%b6%e0%b8%87%e0%b8%82%e0%b9%89/</guid>
	</item>
	<item>
		<title>เปิดใช้ IPv6 บน server แบบไม่ต้องง้อ ไม่ต้องรอ IDC</title>
		<link>http://www.thaihosttalk.com/topic/34124-%e0%b9%80%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b9%83%e0%b8%8a%e0%b9%89-ipv6-%e0%b8%9a%e0%b8%99-server-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%87%e0%b9%89%e0%b8%ad-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95/</link>
		<description><![CDATA[เชื่อว่าหลายๆ คนคงรอกันเก้อ เพราะ idc ไม่ยอมปล่อยมาซักที <img src='http://www.thaihosttalk.com/public/style_emoticons/default/8dcf9699.gif' class='bbc_emoticon' alt=':8dcf9699:' /><br />
ด้วยปัญหามันค่อนข้างเยอะครับ ทั้ง router firewall แล้วก็อุปกรณ์สารพัดจะ support ไม่หวาดไม่ไหว<br />
<br />
วิธีนี้มีชื่อเรียกอย่างเป็นทางการว่า 6to4 tunnel ครับ<br />
สร้าง ipv6 โดยอาศัยโครงข่าย ipv4 ที่มีอยู่แล้ว และใช้เลข ipv4 แปลงเป็นฐาน 16 ฝังอยู่ใน ipv6 เพื่ออ้างอิงถึงเครื่อง<br />
โดย address ที่ได้จะขึ้นต้นด้วย 2002: แล้วตามด้วยหมายเลข ipv4 ที่ถูกแปลงเป็นฐาน 16 ของเราทั้งหมด 8 หลัก<br />
<br />
ex:<br />
103.246.18.13 แปลงเป็นเลขฐาน 16 ทีละชุด<br />
103 =&gt; 67<br />
246 =&gt; F6<br />
18 =&gt; 12<br />
13 =&gt; 0D<br />
เขียนเป็นเลข ipv6 ได้ 2002:67F6:120D:<br />
เลขท้ายที่เหลือ สามารถเลือกใช้ได้อิสระครับ ทั้งนี้ถ้าทำตามวิธีต่อไปนี้ มันจะใช้ ::1 ต่อท้ายเป็นเลข IP เต็มๆ ครับ<br />
จะได้เป็น 2002:67f6:120d::1<br />
<br />
<br />
วิธีตั้งค่า สำหรับ centos / fedora นะครับ<br />
<br />
<br />
เอา code ด้านล่างเพิ่มต่อท้ายไฟล์ /etc/sysconfig/network<br />
<pre class='prettyprint'>
NETWORKING_IPV6=yes
IPV6_DEFAULTDEV=tun6to4
</pre><br />
<br />
<br />
<br />
เอา code ด้านล่างเพิ่มต่อท้ายไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0 (หรือไฟล์ของแต่ละ interface ที่เราใช้)<br />
<pre class='prettyprint'>
IPV6INIT=yes
IPV6TO4INIT=yes
</pre><br />
<br />
<br />
แล้วสั่ง<br />
service network restart <br />
<br />
แค่นี้แหละครับ จบ :D<br />
<br />
เราได้ IPv6 อะไรให้สั่ง ifconfig ดูได้เลยครับ มันจะมี interface ชื่อว่า tun6to4 โผล่มาแบบนี้<br />
<br />
tun6to4   Link encap:IPv6-in-IPv4<br />
      	inet6 addr: 2002:67f6:120d::1/16 Scope:Global<br />
      	UP RUNNING NOARP  MTU:1480  Metric:1<br />
      	RX packets:650 errors:0 dropped:0 overruns:0 frame:0<br />
      	TX packets:606 errors:0 dropped:0 overruns:0 carrier:0<br />
      	collisions:0 txqueuelen:0<br />
      	RX bytes:64850 (63.3 KiB)  TX bytes:98650 (96.3 KiB)<br />
<br />
<br />
<br />
สำหรับ debian/ubuntu ลองดู <a href='http://wiki.debian.org/DebianIPv6#IPv6_6to4_Configuration' class='bbc_url' title='External link' rel='nofollow external'>http://wiki.debian.o...4_Configuration</a> นะครับ<br />
<br />
<br />
ลองเอา ip ที่ได้ไปสั่ง ping ที่เว็บด้านล่างได้ครับเพื่อทดสอบการใช้งาน<br />
<a href='http://www.berkom.blazing.de/tools/ping.cgi' class='bbc_url' title='External link' rel='nofollow external'>http://www.berkom.bl.&#46;&#46;/tools/ping.cgi</a><br />
<br />
<br />
<br />
<br />
*** VPS ที่ใช้ OpenVZ จะใช้วิธีนี้ไม่ได้นะครับ]]></description>
		<pubDate>Sat, 03 Dec 2011 06:42:09 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34124-%e0%b9%80%e0%b8%9b%e0%b8%b4%e0%b8%94%e0%b9%83%e0%b8%8a%e0%b9%89-ipv6-%e0%b8%9a%e0%b8%99-server-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%87%e0%b9%89%e0%b8%ad-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95/</guid>
	</item>
	<item>
		<title>ลง centos 6 แบบ minimal แล้วลง directadmin ยังไงไม่ให้เน่า</title>
		<link>http://www.thaihosttalk.com/topic/34046-%e0%b8%a5%e0%b8%87-centos-6-%e0%b9%81%e0%b8%9a%e0%b8%9a-minimal-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%a5%e0%b8%87-directadmin-%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%87%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%80%e0%b8%99/</link>
		<description><![CDATA[เชื่อว่าหลายคนคงประสบปัญหากันพอควรครับกับ DA เจ้าปัญหา <img src='http://www.thaihosttalk.com/public/style_emoticons/default/70bff581.gif' class='bbc_emoticon' alt=':70bff581:' /><br />
<br />
อันที่จริง มันมาจากว่า centos 6 มัน minimal เกินไปหน่อย lib ที่ควรจะติดมากับ mysql ก็เลยไม่ติดมาด้วย<br />
<br />
หลังจากลง centos เสร็จก็สั่งตามนี้ครับ<br />
<br />
<pre class='prettyprint'>
yum update
rpm -Uvh http&#58;//mirrors.thzhost.com/epel/6/x86_64/epel-release-6-5.noarch.rpm
yum install gcc-c++ make patch screen wget quota ncftp bind bind-utils caching-nameserver which bison flex webalizer patch openssl-devel.x86_64 curl-devel.x86_64 e2fsprogs-devel.x86_64 perl-DBI ntp tcpdump iptables telnet traceroute rsync openssh-clients perl-Term-ReadKey autoconf rpm-build vim-enhanced nginx automake libaio libcurl-devel
</pre><br />
<br />
จัดไปเลยทั้งยวง<br />
แล้วก็ติดตั้ง directadmin ได้ตามปกติเลยครับ]]></description>
		<pubDate>Mon, 28 Nov 2011 09:00:11 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/34046-%e0%b8%a5%e0%b8%87-centos-6-%e0%b9%81%e0%b8%9a%e0%b8%9a-minimal-%e0%b9%81%e0%b8%a5%e0%b9%89%e0%b8%a7%e0%b8%a5%e0%b8%87-directadmin-%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%87%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%80%e0%b8%99/</guid>
	</item>
	<item>
		<title>คู่มือติดตั้งระบบ CentOS Linux 6.0 (ฉบับสมบูรณ์)</title>
		<link>http://www.thaihosttalk.com/topic/33931-%e0%b8%84%e0%b8%b9%e0%b9%88%e0%b8%a1%e0%b8%b7%e0%b8%ad%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%9a-centos-linux-60-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a%e0%b8%aa%e0%b8%a1%e0%b8%9a%e0%b8%b9/</link>
		<description><![CDATA[<img src='http://www.arnut.com/pics/Linux_CentOS6_Manual.jpg' alt='Posted Image' class='bbc_img' /><br />
<br />
<br />
<br />
คู่มือติดตั้งระบบ CentOS Linux 6.0 (ฉบับสมบูรณ์) 32 หน้า (Free)<br />
สามารถคลิกดาวน์โหลดได้ที่ <a href='http://www.slideshare.net/arnut/linuxcentos60installation' class='bbc_url' title='External link' rel='nofollow external'>http://www.slideshar...s60installation</a><br />
<br />
<br />
ที่มา<br />
<a href='http://www.arnut.com' class='bbc_url' title='External link' rel='nofollow external'>http://www.arnut.com</a>]]></description>
		<pubDate>Thu, 17 Nov 2011 05:14:53 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33931-%e0%b8%84%e0%b8%b9%e0%b9%88%e0%b8%a1%e0%b8%b7%e0%b8%ad%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87%e0%b8%a3%e0%b8%b0%e0%b8%9a%e0%b8%9a-centos-linux-60-%e0%b8%89%e0%b8%9a%e0%b8%b1%e0%b8%9a%e0%b8%aa%e0%b8%a1%e0%b8%9a%e0%b8%b9/</guid>
	</item>
	<item>
		<title>เอา ssd มาทำ cache ให้ Hdd ในระดับ kernel ด้วย FlashCache</title>
		<link>http://www.thaihosttalk.com/topic/33611-%e0%b9%80%e0%b8%ad%e0%b8%b2-ssd-%e0%b8%a1%e0%b8%b2%e0%b8%97%e0%b8%b3-cache-%e0%b9%83%e0%b8%ab%e0%b9%89-hdd-%e0%b9%83%e0%b8%99%e0%b8%a3%e0%b8%b0%e0%b8%94%e0%b8%b1%e0%b8%9a-kernel-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-flashcache/</link>
		<description><![CDATA[<a href='https://github.com/facebook/flashcache/' class='bbc_url' title='External link' rel='nofollow external'>https://github.com/facebook/flashcache/</a><br />
<br />
เริ่มด้วยการไปโหลดไฟล์มาก่อน<br />
<br />
แล้วก็อ่าน doc มันซะ <br />
- <a href='https://github.com/facebook/flashcache/blob/master/doc/flashcache-doc.txt' class='bbc_url' title='External link' rel='nofollow external'>https://github.com/facebook/flashcache/blob/master/doc/flashcache-doc.txt</a><br />
- <a href='https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-guide.txt' class='bbc_url' title='External link' rel='nofollow external'>https://github.com/facebook/flashcache/blob/master/doc/flashcache-sa-guide.txt</a><br />
<br />
- <a href='https://github.com/facebook/flashcache/blob/master/README-CentOS5' class='bbc_url' title='External link' rel='nofollow external'>https://github.com/facebook/flashcache/blob/master/README-CentOS5</a><br />
<br />
<pre class='prettyprint'> 
# Install prerequisite build packages:
   yum install dkms gcc make yum-utils kernel-devel
# CentOS kernel-headers/devel packages don't include internal headers, we've got to configure the full source:
   yumdownloader --source kernel-`uname -r`
   sudo rpm -ivh kernel-`uname -r`.src.rpm


#At the top directory, run

make KERNEL_TREE=&lt;Path ของ kernel source&gt;
</pre><br />
<br />
เสร็จพิธิ<br />
<br />
ใช้คำสั่ง flashcache_create   flashcache_destroy  flashcache_load   เพื่อ  สร้าง ลบ หรือเรียกใช้งาน แคชได้ตามใจชอบ<br />
<br />
หลักการง่ายๆคือ เลือก ว่าแต่หละพาทิชั่นของ harddisk จะให้แบ่งเนื้อที่บน ssd มาแคชเท่าไหร่<br />
<br />
<br />
<br />
ข้อดี<br />
- ช่วยเพิ่มประสิทธิภาพ ของฮาร์ดดิสมากขึ้น เพราะได้แคชที่มีขนาดใหญ่ และมีความเร็วในการอ่านเขียนสูง มาก  โดยเฉพาะ การอ่านเขียน ไฟล์เล็กๆ จำนวนมาก นี้จะเห็นผลชัดมาก สามารถทำให้เซิฟเวอร์ของท่าน ถลุงแบนวิธของ idc เพิ่มได้กว่าเดิมอีกมากๆๆๆๆๆ<br />
- ลดความเสี่ยงในการที่ข้อมูลหาย ในกรณีไฟดับ เพราะ ว่า ssd ไฟดับแล้วข้อมูลไม่หาย   แต่ถ้าใช้แรมมาแคช  ข้อมูลที่ยังไม่ sync ลง ดิส จะหายเกลี้ยง<br />
- ได้ความจุเท่า harddisk แต่ได้ความเร็วไกล้เคียงกับใช้ ssd เพียวๆ ลดปัญหา เรื่อง ssd พังง่าย และพังแบบไม่มีปี่มีขลุ่ย รวมถึง พื้นที่อันจำกัดของ ssd<br />
<br />
<br />
<br />
โปรเจคต่อไปจะเอามาทดสอบกับ Revodrive ซึ่งมี bw ของ io สูงถึง 10Gbps  น่าจะแรงน่าดู<br />
<br />
ไว้ผมลองละเอียดๆ แล้วมาอธิบายเพิ่มเติม<br />
<br />
<br />
ตอนนี้ เพื่อนผมได้เอาระบบนี้ไปติดตั้งกับเว็บดูละครย้อนหลังแห่งหนึ่ง สามารถ ทำให้ Server เครื่องเดียว ram 16g hdd 6 ลูก จากเดิม รับโหลดได้ราว 400-500Mbps  ตอนนี้วิ่งเต็มสาย Gbps ไปหละครับ<br />
<br />
ส่วนผมก็เพิ่งลองหัดใช้แบบงูๆปลาๆ มีอะไรก็มาแลกเปลี่ยนกันได้ครับ ^^]]></description>
		<pubDate>Fri, 14 Oct 2011 00:10:56 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33611-%e0%b9%80%e0%b8%ad%e0%b8%b2-ssd-%e0%b8%a1%e0%b8%b2%e0%b8%97%e0%b8%b3-cache-%e0%b9%83%e0%b8%ab%e0%b9%89-hdd-%e0%b9%83%e0%b8%99%e0%b8%a3%e0%b8%b0%e0%b8%94%e0%b8%b1%e0%b8%9a-kernel-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-flashcache/</guid>
	</item>
	<item>
		<title>แจ้งเตือน New Ticket/New Order จาก WHMCS ผ่าน SMS</title>
		<link>http://www.thaihosttalk.com/topic/33385-%e0%b9%81%e0%b8%88%e0%b9%89%e0%b8%87%e0%b9%80%e0%b8%95%e0%b8%b7%e0%b8%ad%e0%b8%99-new-ticketnew-order-%e0%b8%88%e0%b8%b2%e0%b8%81-whmcs-%e0%b8%9c%e0%b9%88%e0%b8%b2%e0%b8%99-sms/</link>
		<description><![CDATA[วันนี้ทำตัวเหมือนจะว่าง (รึเปล่า?) ตื่นเช้ามาจู่ๆก็ได้ไอเดียเอา SMS Gateway ที่ใช้บริการอยู่ มาโมใส่ WHMCS ซะเลย เอาไว้ใช้แจ้งเตือนเราผ่าน SMS เวลามีลูกค้าเปิด Ticket หรือสั่งซื้อ Order ใหม่เข้ามาครับ<br />
<br />
เห็นพี่ๆหลายท่านในนี้ใช้ WHMCS อยู่เหมือนกันก็เลยนำมาแบ่งปันกันดูครับ อาจไม่มีประโยชน์เท่าไรสำหรับท่านที่ใช้งาน Push Mail ใน Smart Phone ทั้งหลายครับ<img src='http://www.thaihosttalk.com/public/style_emoticons/default/70bff581.gif' class='bbc_emoticon' alt=':70bff581:' /><br />
<br />
<strong class='bbc'>แจ้งเตือนผ่าน SMS สำหรับ New Ticket</strong><br />
เริ่มแรกให้ไปแก้ไขไฟล์ supportticketsubmit-confirm.tpl ซึ่งอยู่ในไดเรกทอรี่ของเทมเพลตที่ใช้งานอยู่ครับ โดยแก้ไขให้เชื่อมต่อกับ API ของ SMS Gateway ที่ท่านใช้งานครับ ตัวอย่างของผมนี้เป็นการเชื่อมต่อกับ SMS Gateway ของคุณต้น (PacketLove) ครับ<br />
File Name: /PathToWHMCS/templates/TemplateName/supportticketsubmit-confirm.tpl<br />
<br />
<pre class='prettyprint'>{php}
$ticketid = $this-&gt;_tpl_vars&#91;'tid'&#93;;

function smsnotify($mobile_no,$msg,$sender) {
	$user_id	= "gatewayusername";
	$passwd		= "gatewaypassword";
	$host				= "api.smsgateway.com"; 
	$port				= "80"; 
	$path			= "/api_sms.jsp";

	$data="user_id=$user_id&passwd=$passwd&sender=$sender&mobile_no=$mobile_no&msg=$msg";
	$fp=@fsockopen($host,80);
	
	if ( $fp)
	{
		fputs($fp,"POST $path HTTP/1.1&#092;r&#092;n");
		fputs($fp,"Host: $host&#092;r&#092;n");
		fputs($fp,"Content-type: application/x-www-form-urlencoded&#092;r&#092;n");
		fputs($fp,"Content-length: ".strlen($data)."&#092;r&#092;n");
		fputs($fp,"Connection: close&#092;r&#092;n&#092;r&#092;n");
		fputs($fp,$data);
		while(!feof($fp)) {

			$buffer=fgets($fp,128);
			
		}
		fclose($fp);
	}
}
smsnotify("0812345678","Ticket $ticketid has been opened by your client.","SenderName")
{/php}</pre><br />
<br />
<strong class='bbc'>แจ้งเตือนผ่าน SMS สำหรับ New Order</strong><br />
ให้แก้ไขที่ไฟล์ complete.tpl ในไดเรกทอรี่ Order Form Template ที่ท่านใช้งานอยู่ เพื่อเชื่อมต่อกับ SMS Gateway ที่ท่านใช้งานเช่นกันนะครับ<br />
File Name: /PathToWHMCS/templates/orderforms/TemplateName/complete.tpl<br />
<br />
<pre class='prettyprint'>{php}
$orderid = $this-&gt;_tpl_vars&#91;'ordernumber'&#93;;

function smsnotify($mobile_no,$msg,$sender) {
	$user_id	= "gatewayusername";
	$passwd		= "gatewaypassword";
	$host				= "api.smsgateway.com"; 
	$port				= "80"; 
	$path			= "/api_sms.jsp";

	$data="user_id=$user_id&passwd=$passwd&sender=$sender&mobile_no=$mobile_no&msg=$msg";
	$fp=@fsockopen($host,80);
	
	if ( $fp)
	{
		fputs($fp,"POST $path HTTP/1.1&#092;r&#092;n");
		fputs($fp,"Host: $host&#092;r&#092;n");
		fputs($fp,"Content-type: application/x-www-form-urlencoded&#092;r&#092;n");
		fputs($fp,"Content-length: ".strlen($data)."&#092;r&#092;n");
		fputs($fp,"Connection: close&#092;r&#092;n&#092;r&#092;n");
		fputs($fp,$data);
		while(!feof($fp)) {

			$buffer=fgets($fp,128);
			
		}
		fclose($fp);
	}
}
smsnotify("0812345678","Order $orderid has been placed by your client.","SenderName")
{/php}</pre><br />
สำหรับการแจ้งเตือน New Order นี้ จะใช้งานได้ก็ต่อเมื่อเราตั้งให้แสดง Complete Page เมื่อลูกค้าทำรายการสั่งซื้อเสร็จเรียบร้อยแล้วเท่านั้น โดยตั้งค่าได้ที่ WHMCS Admin เมนู Setup --&gt; General Settings --&gt; Tab Ordering ---&gt; Auto Redirect on Checkout เลือกเป็น Just show the order completed page (no payment redirect) ครับ<br />
<br />
เพียงเท่านี้ เวลามีลูกค้าเปิด Ticket / Order แม้จะไม่ได้อยู่หน้าคอม ไม่ได้เช็คเมล์ เราก็จะสามารถทราบได้ในทันทีครับ (ของผมให้ลูกค้าแจ้งยืนยันการชำระเงินผ่าน Ticket ด้วย ก็น่าจะช่วยเพิ่มความรวดเร็วในการตรวจสอบการชำระเงินให้กับลูกค้าครับ)<br />
<br />
หากผิดพลาดประการใดก็ขออภัยด้วยครับ มือใหม่ <img src='http://www.thaihosttalk.com/public/style_emoticons/default/07baa27a.gif' class='bbc_emoticon' alt=':07baa27a:' />ทั้งนี้อาจจะนำไปประยุกต์กับอย่างอื่นได้อีกก็ลองแชร์ไอเดียกันดูนะครับ<br />
<br />
<a href='http://upic.me/show/28386307' class='bbc_url' title='External link' rel='nofollow external'><img src='http://upic.me/t/w0/tpi41.jpg' alt='Posted Image' class='bbc_img' /></a> <a href='http://upic.me/show/28386308' class='bbc_url' title='External link' rel='nofollow external'><img src='http://upic.me/t/s9/xcpg2.jpg' alt='Posted Image' class='bbc_img' /></a> <a href='http://upic.me/show/28386311' class='bbc_url' title='External link' rel='nofollow external'><img src='http://upic.me/t/ui/p7pt3.png' alt='Posted Image' class='bbc_img' /></a>]]></description>
		<pubDate>Sun, 25 Sep 2011 07:31:55 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33385-%e0%b9%81%e0%b8%88%e0%b9%89%e0%b8%87%e0%b9%80%e0%b8%95%e0%b8%b7%e0%b8%ad%e0%b8%99-new-ticketnew-order-%e0%b8%88%e0%b8%b2%e0%b8%81-whmcs-%e0%b8%9c%e0%b9%88%e0%b8%b2%e0%b8%99-sms/</guid>
	</item>
	<item>
		<title>Backup Technology มีอะไรดีๆ ให้ใช้บ้าง ?</title>
		<link>http://www.thaihosttalk.com/topic/33241-backup-technology-%e0%b8%a1%e0%b8%b5%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b8%94%e0%b8%b5%e0%b9%86-%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%87/</link>
		<description><![CDATA[ทุกวันนี้ การเก็บรักษาข้อมูลเป็นหนึ่งในสิ่งที่สำคัญที่สุดของระบบงาน IT  เนื่องจากในการทำธุรกิจทุกวันนี้ “ข้อมูล” ถือว่าเป็นสิ่งที่กำหนดทิศทางและขับเคลื่อนธุรกิจในแต่ละวันๆ แต่ในขณะเดียวกันถ้าข้อมูลเหล่านี้เกิดสูญหายไปบางส่วน หรือสูญหายหมดสิ้นอย่างถาวร ก็อาจนำมาซึ่งหายนะของธุรกิจได้ ดังนั้นการนำ Backup Technology เข้ามาใช้ในการสำรองข้อมูลอีกชั้นหนึ่ง จึงถือเป็นวิธีการมาตรฐานในการเก็บรักษาข้อมูลขององค์กรในปัจจุบัน แต่ Hardware ที่สามารถนำมาใช้ได้ใน Backup Technology เองก็มีหลากหลายรูปแบบ วันนี้เราจะมาลองดูกันนะครับว่าแต่ละแบบเป็นอย่างไรบ้าง และมีข้อดีข้อเสียอย่างไร<br />
<br />
<span style='font-size: 21px;'>Tape Backup</span><br />
<br />
การนำ Tape มาใช้เก็บข้อมูลในการ Backup ถือเป็นวิธีที่ใช้กันมานาน เนื่องจาก <strong class='bbc'>Tape มีความจุค่อนข้างเยอะ ในราคาที่ถูกกว่าการใช้ Disk และไม่ต้องใช้ไฟฟ้าในการเก็บข้อมูล</strong> แต่ปัจจุบันราคาของ Hard Disk เองก็ถือว่าถูกลงมาก ทำให้หลายๆ องค์กรหันมาใช้งานระบบ Tapeless Backup แทน โดยทำการจัดเก็บข้อมูลทั้งหมดลง Disk เท่านั้น แต่ Tape เองก็ได้พัฒนาเทคโนโลยีไปมาก และยังถือว่าเป็นทางเลือกที่นิยมอยู่ในปัจจุบันอยู่ดี<br />
<br />
<span style='font-size: 21px;'>Server</span><br />
<br />
ในบางครั้งการนำ Server ธรรมดาๆ มาใช้ในการสำรองข้อมูลก็เป็นทางเลือกง่ายๆ ทางหนึ่งที่ทำได้ แต่ข้อจำกัดของ Server คือมีพื้นที่จำกัด ซึ่งโดยทั่วไปมีพื้นทีเพียง 500GB – 4TB เท่านั้น ทำให้ไม่สามารถ Backup Server อื่นๆ จำนวนหลายๆ เครื่อง หรือเก็บข้อมูลย้อนหลังนานๆ ได้ และต้องพึ่งพา External Storage หรือเชื่อมต่อ JBOD เพื่อเพิ่มพื้นที่ในภายหลัง<br />
<br />
<span style='font-size: 21px;'>NAS Storage</span><br />
<br />
<img src='http://www.throughwave.co.th/wp-content/uploads/2010/08/PAS-12-blades-sm.jpg' alt='Posted Image' class='bbc_img' /><br />
<br />
NAS Storage เป็นอีกทางเลือกหนึ่งที่นิยม เนื่องจาก<strong class='bbc'>ติดตั้งและใช้งานง่าย สามารถแชร์ให้ Server/PC หลายๆ เครื่องใช้งานร่วมกันได้</strong> รวมถึงมี NAS แบบ SOHO ราคาไม่แพงนักให้ใช้ และมี Enterprise NAS สำหรับองค์กรขนาดใหญ่ ดังนั้นในระบบที่เน้นการสำรองข้อมูลของผู้ใช้งาน หรือสำรองข้อมูลของ Server จำนวนไม่มากนัก การนำ NAS มาใช้ก็ถือว่าเป็นทางเลือกที่ดี<br />
<br />
<span style='font-size: 21px;'>SAN Storage</span><br />
<br />
SAN Storage ได้กลายมาเป็นตัวเลือกยอดนิยมในการสำรองข้อมูลอย่างรวดเร็วในช่วง 3-4 ปีที่ผ่านมา เพราะนอกจากจะนำไปทำ Backup แล้ว <strong class='bbc'>SAN Storage เองยังสามารถให้บริการระบบงานอื่นๆ ไปพร้อมๆ กันได้อีกด้วย และมีความสามารถในการทำ Data Protection ที่หลากหลาย ทั้ง Snapshot, Volume Copy, Volume Mirror หรือแม้แต่ Remote Replication</strong> อีกทั้งยังมีประสิทธิภาพที่ค่อนข้างสูงกว่า NAS อีกด้วย แต่ในขณะเดียวกัน SAN Storage เองก็บริหารจัดการไม่ง่ายเท่า NAS และยังมีราคาเริ่มต้นที่ค่อนข้างสูง ทำให้บางครั้งระบบ SAN จึงกลายเป็นตัวเลือกที่ราคาสูงเกินความต้องการไปบ้าง<br />
<br />
<span style='font-size: 21px;'>Storage Server</span><br />
<br />
Storage Server หรือ Server เฉพาะทางที่สามารถติดตั้ง Hard Disk ได้เป็นจำนวนมาก ได้รับความนิยมอย่างสูงในช่วงปีที่ผ่านมา เนื่องจากประหยัดทั้งค่าใช้จ่าย แทนที่จะซื้อ Server 1 เครื่อง Storage 1 เครื่อง ก็สามารถยุบรวมลงมาเป็น Storage Server เพียงเครื่องเดียวได้เลย อีกทั้งยังสามารถ <strong class='bbc'>“เลือก” ได้ทั้ง “ประสิทธิภาพ”, “ความจุ” และ “การทำ Data Protection” ได้อย่างอิสระ</strong>อีกด้วย รวมถึงยังสามารถเลือกการให้บริการได้ทั้งแบบ “NAS” และ “SAN” ได้ในตัวเดียวกัน หรือแม้แต่ในอนาคต ถ้าอยากจะทำการ Backup ลงเทปเพิ่มเติม ก็ยังสามารถซื้อเทปมาเชื่อมต่อเข้ากับ Storage Server ได้อีกด้วย<br />
<br />
ด้วยเหตุผลเหล่านี้เอง Storage Server จึงถือว่าเป็นทางเลือกที่น่าจับตามองเป็นอย่างยิ่งสำหรับตลาด Backup / Disaster Recovery<br />
<br />
<span style='font-size: 21px;'>Cloud Storage</span><br />
<br />
Backup Software Vendor บางเจ้า ก็มีบริการ Backup ขึ้น Cloud Storage ให้เลย ทำให้ผู้ใช้งานได้ประโยชน์ทั้งในแง่ที่<strong class='bbc'>ไม่ต้องลงทุนซื้อหาและดูแล Hardware ด้วยตัวเอง และยังเป็นการทำ Disaster Recovery กลายๆ ไปในตัวอีกด้วย</strong> ซึ่งแนวคิดนี้ก็กำลังเป็นที่นิยมมากขึ้นเรื่อยๆ โดยเฉพาะในตลาด Notebook Backup เนื่องจากผู้ใช้งานสามารถทำการสำรองข้อมูลและกู้คืนข้อมูลได้ทุกที่ทุกเวลา ขอเพียงแค่เชื่อมต่อไปยัง Cloud Backup Service ได้เท่านั้น<br />
<br />
บทความนี้ก็ขอจบลงเพียงเท่านี้ครับ ครั้งนี้ไม่ได้เขียนลงลึกมาก เป็นเพราะอยากจะเล่าถึงภาพรวมๆ ให้เห็นกันมากกว่า เพราะถ้าจะลงลึกเรื่อง Backup จริงๆ แล้วมีแง่มุมอีกมากมายให้ต้องคิดอ่านกันอีกครับ<br />
<br />
สำหรับคราวนี้ สวัสดีครับ<br />
<br />
บทความโดย <a href='http://www.throughwave.co.th/newsletter/05/issue05.html' class='bbc_url' title='External link' rel='nofollow external'>Throughwave Connect #5: Backup is all around</a>]]></description>
		<pubDate>Thu, 15 Sep 2011 04:49:44 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33241-backup-technology-%e0%b8%a1%e0%b8%b5%e0%b8%ad%e0%b8%b0%e0%b9%84%e0%b8%a3%e0%b8%94%e0%b8%b5%e0%b9%86-%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b8%9a%e0%b9%89%e0%b8%b2%e0%b8%87/</guid>
	</item>
	<item>
		<title>มาตั้งค่าความปลอดภัยเบื้องต้นให้ Linux กันดีกว่า</title>
		<link>http://www.thaihosttalk.com/topic/33194-%e0%b8%a1%e0%b8%b2%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87%e0%b8%84%e0%b9%88%e0%b8%b2%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b8%9b%e0%b8%a5%e0%b8%ad%e0%b8%94%e0%b8%a0%e0%b8%b1%e0%b8%a2%e0%b9%80%e0%b8%9a%e0%b8%b7%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%95/</link>
		<description><![CDATA[นี่เป็นเกร็ดเล็กๆน้อยๆเบื้องต้นสำหรับมือใหม่ที่จะช่วยปรับแต่งให้เครื่อง Linux มีความปลอดภัยมากยิ่งขึ้นครับ โดยตัวอย่างที่ให้เป็นคำสั่งบนเครื่อง debian ถ้าใครใช้ distro อื่นๆก็อาจจะมีรายละเอียดปลีกย่อยแตกต่างกันไป (ส่วนใหญ่จะคล้ายๆกันแต่ต่างกันที่สถานที่เก็บ config ไฟล์ต่างๆ) ผิดพลาดประการใดก็ขออภัยด้วยครับ<br />
<br />
แบ่งขั้นตอนคร่าวๆได้ดังนี้<br />
1. สร้าง user ขึ้นมาใหม่ - เพื่อที่จะได้ไม่ต้องเข้าเป็น root ตลอดเวลา ช่วยทั้งเรื่องความปลอดภัยและป้องกันความซุ่มซ่ามของตัวเองทำเครื่องพังจากการใช้คำสั่งอย่างไม่ระมัดระวัง<br />
2. เปลี่ยน root password - โดยเฉพาะคนที่ได้ root password มาจากคนอื่น (แต่ถ้าเราเปลี่ยนแล้ว คนๆนั้นก็จะเข้า root ไม่ได้นะครับ เว้นแต่ว่าจะให้สิทธิ์ใน sudoers ไว้ตามข้างล่าง)<br />
3. ปิด service ต่างๆที่ไม่ได้ใช้ - เพื่อลดจำนวนช่องโหว่ลง<br />
4. ลง sudo - จะได้ไม่ต้อง login เข้า root ตามข้อ (1) ข้างบน<br />
5. ตั้งค่า SSH - ไม่ให้ login โดยใช้ root และทำ public key authentication (ถ้าต้องการ)<br />
6. ตั้งค่า iptables - เพื่อเปิดใช้เฉพาะ port ที่จำเป็นจริงๆ<br />
<br />
มาเริ่มกันเลยดีกว่า..<br />
<strong class='bbc'>1. สร้าง user โดยใช้คำสั่ง adduser</strong><br />
$ adduser username<br />
$ passwd username<br />
<br />
<strong class='bbc'>2. เปลี่ยน root password</strong><br />
$ passwd <br />
<br />
<strong class='bbc'>3.ปิด service ต่างๆที่ไม่ได้ใช้</strong><br />
ปกติผมจะไปเพิ่มหรือลบ symbolic link ตาม /etc/rcX.d/ เอาด้วยความเคยชิน แต่เดี๋ยวนี้ใช้สคริปต์ update-rc.d ได้ครับ (สำหรับ debian) หรือ 'service' สำหรับ Centos <br />
$ update-rc.d -f service_name remove<br />
<br />
<strong class='bbc'>4. ลง sudo</strong><br />
$ apt-get install sudo<br />
หรือใครใช้ Centos ก็ให้ใช้ yum เอา<br />
<br />
จากนั้นก็ให้ใช้ visudo เพื่อแก้ไฟล์ sudoers อยากให้ใครใช้คำสั่งที่ต้องใช้ root privilege ได้ก็ใส่บรรทัดนี้เข้าไป<br />
<br />
username ALL=(ALL)<br />
<br />
<strong class='bbc'>5. ตั้งค่า SSH</strong><br />
อันดับแรกที่ผมทำเลยคือปิด root login ครับ ให้เข้ามาเป็น user ธรรมดาแล้วมา sudo เอา<br />
เปิดไฟล์ /etc/ssh/sshd_config โดยใช้ editor ที่ถนัด แล้วมองหาบรรทัด PermitRootLogin yes แล้วเปลี่ยนเป็น PermitRootLogin no แทน<br />
<br />
จากนั้นก็เช็คว่าให้ใช้ SSH version 2 เท่านั้น โดยดูในไฟล์เดิมแล้วหาบรรทัด Protocol 2,1 แล้วเปลี่ยนเป็น Protocol 2 แทน ถ้าเป็น Protocol 2 อยู่แล้วก็ไม่ต้องไปยุ่งอะไรมันครับ<br />
<br />
ถ้าอยากจะเปลี่ยน port SSH ด้วยก็ทำได้ครับ หาบรรทัด Port 22 แล้วเปลี่ยนเลข 22 เป็น port อื่นที่เราต้องการ<br />
<br />
สำหรับคนที่โรคจิตวิตกจริตอย่างผมก็อาจจะอยากใช้ public key authentication แทน ก็ทำได้ครับ ก่อนอื่นก็สร้าง public/private key บนเครื่องตัวเองก่อน<br />
<br />
$ ssh-keygen -t rsa<br />
<br />
และควรจะใส่ password ให้กับ key นี้ด้วยเพื่อเพิ่มความปลอดภัย (ไม่งั้นถ้า private key โดนขโมย คนที่ขโมยก็จะสามารถเข้าเครื่องเราได้ทันที)<br />
<br />
จากนั้นก็ upload public key ขึ้นไปบน server<br />
<br />
$ scp id_rsa.pub username@server:id_rsa.pub<br />
<br />
แล้ว log เข้าไปที่ server เพื่อตั้งให้ใช้ key นี้สำหรับ login<br />
<br />
$ cd (ไปที่ home ของ user ที่ต้องการ)<br />
$ mkdir .ssh<br />
$ chmod 700 .ssh<br />
$ cat id_rsa.pub &gt;&gt; .ssh/authorized_keys<br />
$ chmod 600 .ssh/authorized_keys<br />
<br />
แล้วเปิดไฟล์ /etc/ssh/sshd_config ขึ้นมาอีกครั้งเพื่อตั้งให้ใช้ public key เท่านั้น<br />
หาบรรทัด PasswordAuthentication yes แล้วเปลี่ยนเป็น PasswordAuthentication no<br />
หาบรรทัด UsePAM yes แล้วเปลี่ยนเป็น UsePAM no<br />
<br />
ถ้ามั่นใจว่าไม่ได้ทำอะไรผิดก็ทำการ restart sshd<br />
$ /etc/init.d/ssh restart<br />
*** ควรจะทำที่หน้าจอหรือผ่าน iKVM เพราะถ้า config พลาดอาจจะทำให้เข้าเครื่องไม่ได้ (เตือนแล้วนะครับ) หรือถ้าจำเป็นจริงๆที่ต้องทำจากข้างนอกก็ต้องไม่ปิด session ssh ปัจจุบันจนกว่าจะมั่นใจว่าสามารถเข้า session ใหม่ผ่าน public key ได้ ***<br />
<br />
<strong class='bbc'>6. ตั้งค่า iptables</strong><br />
โดยปกติผมจะปิดทุก port ยกเว้นแต่ port ที่ต้องใช้จริงๆ ขั้นตอนต่อไปจะทำในไฟล์หรือใส่ command เข้าไปเลยก็ได้ ถ้าสร้างไฟล์ก็ให้เริ่มไฟล์ด้วย *filter เพื่อบอกว่าเรากำลังแก้ filter table อยู่ ดังนี้<br />
<br />
$ vi /etc/iptables.test.rules<br />
<br />
*filter<br />
-A INPUT -i lo -j ACCEPT<br />
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT<br />
-A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT<br />
-A OUTPUT -j ACCEPT<br />
-A INPUT -p tcp --dport 80 -j ACCEPT<br />
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT<br />
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT<br />
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7<br />
-A INPUT -j DROP<br />
-A FORWARD -j DROP<br />
<br />
COMMIT<br />
<br />
อธิบาย rules ต่างๆ<br />
1 - อนุญาต traffic จาก loopback interface<br />
2 - ถ้ามี traffic มาที่ 127.0.0.0/8 ต้องมาจาก loopback interface เท่านั้น<br />
3 - อนุญาต incoming traffic ที่เริ่มจากเครื่องนี้<br />
4 - อนุญาต outgoing traffic ทั้งหมด<br />
5 - อนุญาต tcp traffic ที่มาที่ port 80<br />
6 - อนุญาต tcp traffic ที่มาที่ port 22 (SSH)<br />
7 - อนุญาต ping<br />
8 - เก็บ log traffic ที่ไม่ได้รับอนุญาต<br />
9 - drop incoming traffic อื่นๆ<br />
10 - drop traffic อื่นๆ ที่จะต้องถูก forward<br />
<br />
<br />
เสร็จแล้วก็ load เข้า iptables โดยคำสั่ง<br />
$ iptables-restore &lt; /etc/iptables.test.rules<br />
<br />
หรือถ้าไม่ทำใส่ไฟล์ก็ให้ใช้คำสั่ง iptables นำหน้าแทนครับ เช่น<br />
$ iptables -A INPUT -i lo -j ACCEPT<br />
แล้วใส่เข้าไปทีละบรรทัด<br />
<br />
จากนั้นก็ดูความเรียบร้อย<br />
$ iptables -L<br />
<br />
และลองดูว่า port ที่ต้องการจะใช้ใช้ได้จริงหรือเปล่า และ port อื่นๆได้ถูกปิดไปจริงหรือไม่ (สำหรับคนที่เปลี่ยน port ssh ก็อย่าลืมเปลี่ยนตามนะครับ) ถ้าเรียบร้อยดีก็ save ไป<br />
$ iptables-save &gt; /etc/iptables.up.rules<br />
<br />
แล้วสร้าง script ขึ้นมาเพื่อโหลด rules ตอน boot<br />
$vi /etc/network/if-pre-up.d/iptables<br />
<br />
#!/bin/bash<br />
/sbin/iptables-restore &lt; /etc/iptables.up.rules<br />
<br />
save ไฟล์แล้วเปลี่ยน permission ให้เป็น executable<br />
$ chmod +x /etc/network/if-pre-up.d/iptables<br />
<br />
เป็นอันเสร็จเรียบร้อย<br />
<br />
(ลอกมาจาก blog ตัวเอง + update นิดหน่อย) original ที่นี่ <a href='http://just-another-blog.com/lang/en-us/2011/01/securing-a-debian-box-เพิ่มความปลอดภัยให้-debi/' class='bbc_url' title='External link' rel='nofollow external'>http://just-another-blog.com/lang/en-us/2011/01/securing-a-debian-box-เพิ่มความปลอดภัยให้-debi/</a>]]></description>
		<pubDate>Sun, 11 Sep 2011 08:35:43 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33194-%e0%b8%a1%e0%b8%b2%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87%e0%b8%84%e0%b9%88%e0%b8%b2%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1%e0%b8%9b%e0%b8%a5%e0%b8%ad%e0%b8%94%e0%b8%a0%e0%b8%b1%e0%b8%a2%e0%b9%80%e0%b8%9a%e0%b8%b7%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%95/</guid>
	</item>
	<item>
		<title>แนะนำ ionice</title>
		<link>http://www.thaihosttalk.com/topic/33133-%e0%b9%81%e0%b8%99%e0%b8%b0%e0%b8%99%e0%b8%b3-ionice/</link>
		<description><![CDATA[ปกติเรามักใช้คำสั่ง nice เพื่อลด/หรือเพิ่มความสำคัญ ของการใช้งาน CPU ให้กับ process หนึ่งๆ ได้ แต่คำสั่ง nice ใช้ได้ผลเฉพาะกับ CPU เท่านั้น<br />
<br />
แต่กับ process ที่กิน disk มากๆ และทำงานนานๆ เช่นการแบคอัพข้อมูล คำสั่ง nice แทบจะไม่มีผล เพราะ process ดังกล่าวใช้งาน IO เป็นหลัก<br />
<br />
ขอแนะนำคำสั่ง ionice ครับ จะมีผลคล้ายกับคำสั่ง nice แต่จะควบคุมการให้ priority ของ IO กับ process หนึ่งๆ แทน<br />
<br />
<strong class='bbc'>รูปแบบ</strong><br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'><span style='color: #222222'><span style='font-family: arial, sans-serif'><br />
<strong class='bbc'>ionice usage</strong><br />
If no arguments or just -p is given, ionice will query the current io scheduling class and priority for that process.<br />
<br />
ionice [-c] [-n] [-p] [COMMAND [ARG...]]<ul class='bbc'><li><strong class='bbc'>-c</strong> - The scheduling class. 1 for real time, 2 for best-effort, 3 for idle.</li><li><strong class='bbc'>-n</strong> - The scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.</li><li><strong class='bbc'>-p</strong> - Pass in a process pid to change an already running process. If this argument is not given, ionice will run the listed program with the given parameters.</li></ul></span></span><br /></div></div><br />
<br />
<br />
<strong class='bbc'>คำเตือน</strong> ไม่ควรใช้ <pre class='prettyprint'>ionice -c1 -pPID</pre> กับ process ที่ต้องทำงานนานๆ นะครับ อาจทำให้ระบบแน่นิ่งไปได้<br />
<br />
นอกจากนี้ ควรทราบว่า ionice ใช้ได้เฉพาะใน Linux ที่ใช้ CFQ เป็น scheduler เท่านั้น เช่นพวกตระกูล RedHat หรือ CentOS<br />
<br />
ตรวจสอบว่า Linux ของคุณใช้ scheduler ตัวไหนแบบนี้ครับ<br />
<br />
<pre class='prettyprint'>cat /sys/block/&#91;sh&#93;d&#91;a-z&#93;*/queue/scheduler</pre><br />
<br />
<br />
<br />
<br />
อ่านเพิ่มเติม <a href='http://goo.gl/a6zCU' class='bbc_url' title='External link' rel='nofollow external'>http://goo.gl/a6zCU</a>]]></description>
		<pubDate>Tue, 06 Sep 2011 05:27:55 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33133-%e0%b9%81%e0%b8%99%e0%b8%b0%e0%b8%99%e0%b8%b3-ionice/</guid>
	</item>
	<item>
		<title>ปัญหาเรื่อง Fix handling of byte-range requests บน apache2.2.x</title>
		<link>http://www.thaihosttalk.com/topic/33080-%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-fix-handling-of-byte-range-requests-%e0%b8%9a%e0%b8%99-apache22x/</link>
		<description><![CDATA[สำหรับ Bug ตัวนี้ค่อนข้างรุนแรงเหมือนกันนะครับผม<br />
ถ้าโดนเข้าไปมันจะไปกิน CPU และ Memory ของเครื่องที่มีรูโหว่ตัวนี้<br />
จนทำให้ Load server สูงมากจนเป็น Denial of Service ไปเลยครับผม<br />
<br />
version ที่กระทบกับรูโหว่ตัวนี้<br />
Apache HTTP Server 1.3.x, 2.0.x through 2.0.64, and 2.2.x through 2.2.19<br />
<br />
ทางที่ดีเบื้องต้นควรอัฟเดท เป็น apache 2.2.20 ดีกว่าครับ<br />
เพราะ version fix bug ตัวนี้ให้เรีนบร้อยครับผม<br />
<br />
ถ้าท่านไหนใช้ da ก็ง่ายหน่อยครับ<br />
cd /usr/local/directadmin/custombuild<br />
./build update<br />
./build versions      #ensure you see 2.2.20<br />
./build apache<br />
./build php n<br />
<br />
ลองเทสดูด้วยนะครับ ว่าหลัง upgrade apache แล้วรัน script เช็คแล้วสามารถผ่านรูโหว่ นี้ไปได้<br />
<a href='http://www.apache.org/dist/httpd/CHANGES_2.2' class='bbc_url' title='External link' rel='nofollow external'>http://www.apache.org/dist/httpd/CHANGES_2.2</a> =&gt; แก้bugไป 4 ตัว<br />
<a href='http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192' class='bbc_url' title='External link' rel='nofollow external'>http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192</a>]]></description>
		<pubDate>Thu, 01 Sep 2011 08:48:00 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/33080-%e0%b8%9b%e0%b8%b1%e0%b8%8d%e0%b8%ab%e0%b8%b2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87-fix-handling-of-byte-range-requests-%e0%b8%9a%e0%b8%99-apache22x/</guid>
	</item>
	<item>
		<title>มาซ่อมแซม Mysql Database แบบอัตโนมัติใน DA กันดีกว่า</title>
		<link>http://www.thaihosttalk.com/topic/32945-%e0%b8%a1%e0%b8%b2%e0%b8%8b%e0%b9%88%e0%b8%ad%e0%b8%a1%e0%b9%81%e0%b8%8b%e0%b8%a1-mysql-database-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%ad%e0%b8%b1%e0%b8%95%e0%b9%82%e0%b8%99%e0%b8%a1%e0%b8%b1%e0%b8%95%e0%b8%b4%e0%b9%83%e0%b8%99-da-%e0%b8%81%e0%b8%b1/</link>
		<description><![CDATA[Mysql Database เมื่อใช้ไปนานๆ บางครั้งอาจเสีย บางทีก็เสียโดยไม่รู้ตัว<br />
ทำให้เว็บของลูกค้าของเรามันทำงานหนัก Server ของเรามันก็ต้องทำงานหนักไปด้วย <br />
ดังนั้นเพื่อแก้ปัญหาดังกล่าวเราก็ต้องตรวจสอบและซ่อมแซม Database เของเราเป็นประจำ<br />
อาจจะสัปดาห์ละครั้งก็ได้ครับ<br />
<br />
มาดู script กัน <br />
ไปเพิ่ม ใน crontab  ดังนี้<br />
<br />
ตัวอย่างอันนี้ให้ตรวจสอบและซ่อมแซมทุกวันตอนเวลา 05.00 น.<br />
<br />
debian<br />
0 5 * * *  cat /usr/local/directadmin/conf/mysql.conf | grep passw | cut -d= -f2 | xargs -iX -n 1 /usr/local/mysql/bin/mysqlcheck  --auto-repair -A -u da_admin -pX &<br />
<br />
centos<br />
0 5 * * *  cat /usr/local/directadmin/conf/mysql.conf | grep passw | cut -d= -f2 | xargs -iX -n 1 /usr/bin/mysqlcheck  --auto-repair -A -u da_admin -pX &<br />
<br />
แค่นี้ Mysql Server ของเราก็แรงตลอดเวลาแล้วครับ]]></description>
		<pubDate>Thu, 18 Aug 2011 08:50:58 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32945-%e0%b8%a1%e0%b8%b2%e0%b8%8b%e0%b9%88%e0%b8%ad%e0%b8%a1%e0%b9%81%e0%b8%8b%e0%b8%a1-mysql-database-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b8%ad%e0%b8%b1%e0%b8%95%e0%b9%82%e0%b8%99%e0%b8%a1%e0%b8%b1%e0%b8%95%e0%b8%b4%e0%b9%83%e0%b8%99-da-%e0%b8%81%e0%b8%b1/</guid>
	</item>
	<item>
		<title>วิธีติดตั้ง + config NGINX แบบไม่ต้องยุ่งอะไรกับ DA เลย ไม่ต้อง Run Cron, ไม่แก้ unlimit, รูปขึ้นทุกเว็บ</title>
		<link>http://www.thaihosttalk.com/topic/32792-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-config-nginx-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%a2%e0%b8%b8%e0%b9%88%e0%b8%87%e0%b8%ad/</link>
		<description><![CDATA[<strong class='bbc'><span style='color: #006400'>ปรับปรุงล่าสุด 11/09/2011 11.15 น. แก้ไขให้รองรับสำหรับคนใช้ csf รุ่นใหม่</span></strong><br />
<br />
ก่อนอื่นแจ้งว่าที่ไม่อยากโพสในกระทู้เดิมเพราะค่อนข้างยาวและรายละเอียดต่างกันพอสมควรครับ. จากกระทู้เดิมผมลองแล้วชอบทุกอย่างยกเว้น<br />
<br />
1. เวลาสร้าง user ใหม่พบว่ารูปไม่ขึ้นต้องสั่งตามด้านล่าง (เครดิต น้องมีน) ซึ่งถ้ามี user จ่ายผ่าน paypal กลางคืนเช้าเมล์เข้าแล้วบ่นว่ารูปไม่ขึ้น. (ปัญหานี้อาจเป็นกับผมคนเดียวและ<span class='bbc_underline'>ไม่สามารถถือว่าเป็นปัญหาที่มาจากกระทู้เดิมได้</span>)<br />
<br />
<pre class='prettyprint'>rm -f /usr/local/directadmin/data/users/*/nginx.conf
cat /dev/null &gt; /usr/local/nginx/etc/virtual.conf

#Rewrite All
/usr/local/directadmin/scripts/nginx_direct.sh all </pre><br />
<br />
2. ผมไม่รู้ว่า ทำไมต้อง run cron ผมไม่อยาก cron คำสั่งอะไรที่ผมไม่รู้แน่ชัดว่าทำไปเพื่ออะไร.<br />
<br />
<pre class='prettyprint'>crontab -e
* * * * * /usr/local/directadmin/scripts/nginx_task.sh</pre><br />
<br />
3. ผมไม่ต้องการแก้ไขอะไรกับ DA ด้วย file ที่ไม่ใช่ Official release จาก Directadmin.com ผมเคยเมล์ถาม john (DA support) เกี่ยวกับ nginx ได้คำตอบว่าไม่มีนโยบายเกี่ยวกับ nginx เลย. ดังนั้นผมจะไม่จับ nginx ไปยุ่งกับ DA เลยนี่คือโจทย์ของผม<br />
<br />
<br />
โอเคเริ่มเลยแล้วกัน. วิธีด้านล่างสามารถใช้ได้ทั้ง Cli และ CGI โดยไม่ต้องยุ่งกับ Directadmin เลย และไม่ต้องปรับค่า unlimit (<em class='bbc'>อันหลังตรง unlimit ผมไม่ชัวร์นะครับเพราะไม่รู้ว่าแต่ละเครื่องต่างกันหรือเปล่าแต่โดยส่วนตัวผมไม่ได้รับค่านี้เลย. แต่โดยหลักแล้ว nginx run ด้วย user คือ apache อะไรที่ apache ทำได้ nginx ก็ควรจะทำได้เหมือนกัน</em>). ข้อมูลเกี่ยวกับ server ของผมที่ผมใช้ test คือ<br />
<br />
<pre class='prettyprint'>apache 2.2.19
php 5.2.16 + suhosin patch + complie แบบ cli</pre><br />
<br />
<br />
<span style='color: #4169E1'><strong class='bbc'>ขั้นตอนที่ 1: ติดตั้ง nginx ก่อน โดยผมจะติดตั้งเพิ่ม 3 module</strong></span><br />
<br />
<pre class='prettyprint'>
wget http&#58;//nginx.org/download/nginx-1.1.0.tar.gz
tar xvfz nginx-1.1.0.tar.gz
cd nginx-1.1.0
./configure --sbin-path=/usr/local/sbin --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
make
make install
</pre><br />
<br />
ดูจากกระทู้เดิมผมยังไม่เข้าใจว่าในไฟล์ nginx.conf สั่ง gzip ได้ยังไงเพราะยังไม่ติดตั้ง mod หรือว่า gzip มีอยู่แล้วใน linux อันนี้ผมไม่แน่ใจจริง ๆ ค่อนข้างจะ งง ๆ<br />
<br />
<br />
<span style='color: #0000FF'><strong class='bbc'>ขั้นตอนที่ 2: แก้ไขไฟล์ nginx.conf + สร้าง dir เก็บ log</strong></span><br />
<br />
<pre class='prettyprint'>nano -w /usr/local/nginx/conf/nginx.conf</pre><br />
<br />
โดย code ที่ผมใช้ประยุกต์มาจากกระทู้เก่า (ห้ามเป็นนักกอล์ฟนะครับมีส่วนที่ต้องแก้ ip ด้วยแก้ก่อนเอาไปใช้นะครับ)<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>user  apache apache;<br />
<br />
worker_processes     4; # Set it according to what your CPU have. 4 Cores = 4<br />
worker_rlimit_nofile 8192;<br />
<br />
pid /var/run/nginx.pid;<br />
<br />
events {<br />
  worker_connections 1024;<br />
}<br />
<br />
http {<br />
    include       mime.types;<br />
    default_type  application/octet-stream;<br />
<br />
    log_format main '$remote_addr - $remote_user [$time_local] '<br />
                    '"$request" $status  $body_bytes_sent "$http_referer" '<br />
                    '"$http_user_agent" "$http_x_forwarded_for"';<br />
<br />
    server_tokens off;<br />
    access_log  /var/log/nginx/access.log  main;<br />
    error_log  /var/log/nginx/error_log debug;<br />
<br />
    server_names_hash_bucket_size 64;<br />
    sendfile on;<br />
    tcp_nopush     on;<br />
    tcp_nodelay    off;<br />
    keepalive_timeout  30;<br />
    gzip  on;<br />
    gzip_comp_level 9;<br />
    gzip_proxied any;<br />
<br />
    proxy_buffering on;<br />
    proxy_cache_path /usr/local/nginx/proxy_temp levels=1:2 keys_zone=one:15m inactive=7d max_size=1000m;<br />
    proxy_buffer_size 16k;<br />
    proxy_buffers 100 8k;<br />
    proxy_connect_timeout      60;<br />
    proxy_send_timeout         60;<br />
    proxy_read_timeout         60;<br />
<br />
    server {<br />
      listen <span style='color: #FF0000'><strong class='bbc'>ไอพีของคุณเองนะ</strong></span>:85 default rcvbuf=8192 sndbuf=16384 backlog=32000; # Real IP here<br />
      server_name domain.name  _ ;     # "_" is for handle all hosts that are not described by server_name<br />
      charset off;<br />
      access_log  /var/log/nginx/nginx_host_general.access.log  main;<br />
      location / {<br />
        proxy_set_header Host $host;<br />
        proxy_set_header X-Real-IP $remote_addr;<br />
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
        proxy_pass http://<span style='color: #FF0000'><strong class='bbc'>ไอพีของคุณเองนะ</strong></span>;    # Real IP here และไม่มี / ปิดท้าย<br />
        client_max_body_size       16m;<br />
        client_body_buffer_size    128k;<br />
        proxy_buffering     on;<br />
        proxy_connect_timeout      90;<br />
        proxy_send_timeout         90;<br />
        proxy_read_timeout         120;<br />
        proxy_buffer_size          16k;<br />
        proxy_buffers              32 32k;<br />
        proxy_busy_buffers_size    64k;<br />
        proxy_temp_file_write_size 64k;<br />
      }<br />
      <br />
      location ~* ^/(phpmyadmin|webmail|squirrelmail|uebimiau|roundcube)/.+&#092;.(jpg|jpeg|gif|png|ico|css|zip|tar|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|wmv|avi|cur|swf|mp3|wma|htc|cur)$ {<br />
      root /var/www/html/;<br />
      expires 30d;<br />
      access_log off;<br />
      }<br />
      <br />
    location ~* ^/(stats)/.+&#092;.(jpg|jpeg|gif|png|html|htm)$ {<br />
    root /var/www/html/;<br />
    access_log off;<br />
    }<br />
      <br />
      location ~* ^/(mrtg|imrtg)/.+&#092;.(jpg|jpeg|gif|png|html|htm)$ {<br />
      root /var/www/html/;<br />
      access_log off;<br />
      }<br />
      <br />
      location /nginx_status {<br />
               stub_status on;<br />
               access_log   off;<br />
               allow <span style='color: #FF0000'><strong class='bbc'>ใส่ไปตามต้องการ</strong></span>; # Real IP here<br />
               allow 127.0.0.1;<br />
               deny all;<br />
               }<br />
      <br />
    }<br />
	# เพื่อไว้สำหรับคนที่จะแยกค่า conf นะครับ. ไฟล์ตามด้านล่างของผมคือไฟล์ว่างเปล่า<br />
    include /usr/local/nginx/etc/*.conf;<br />
}<br />
<br />
<br /></div></div><br />
<br />
อย่าลืมสร้าง Dir คือ <br />
<br />
<pre class='prettyprint'>/var/log/nginx</pre><br />
<br />
และสร้างไฟล์<br />
<br />
<pre class='prettyprint'>touch access.log
touch error_log
touch nginx_host_general.access.log</pre><br />
<br />
<br />
<span style='color: #0000FF'><strong class='bbc'>ขั้นตอนที่ 3: สร้างไฟล์เพื่อ start/stop/restart nginx service + pid </strong></span><br />
<br />
ต้องสร้าง pid ตามที่ระบุไว้ในไฟล์ .conf ตามข้อสองด้วยครับ<br />
<br />
<pre class='prettyprint'>touch /var/run/nginx.pid</pre><br />
<br />
จากนั้นสร้างไฟล์เพื่อ start/stop/restart nginx service<br />
<br />
<pre class='prettyprint'>touch /etc/init.d/nginx</pre><br />
<br />
จากนั้นแก้ไขโค๊ด<br />
<br />
<pre class='prettyprint'>nano -w /etc/init.d/nginx</pre><br />
<br />
ใส่ค่าคือ (เครดิต <a href='http://www.hikaro.com/linux/centos/nginx-init-script.html' class='bbc_url' title='External link' rel='nofollow external'>http://www.hikaro.com/linux/centos/nginx-init-script.html</a> )<br />
<br />
<pre class='prettyprint'>#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
# Taken from http&#58;//www.hikaro.com
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse &#092;
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
&#91; "$NETWORKING" = "no" &#93; && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
    &#91; -x $nginx &#93; || exit 5
    &#91; -f $NGINX_CONF_FILE &#93; || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    &#91; $retval -eq 0 &#93; && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    &#91; $retval -eq 0 &#93; && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status &gt;/dev/null 2&gt;&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

</pre><br />
<br />
เปลี่ยน mod ด้วยครับ<br />
<br />
<pre class='prettyprint'>chmod +x /etc/init.d/nginx</pre><br />
<br />
<br />
<span style='color: #0000FF'><strong class='bbc'>ขั้นตอนที่ 4: ทดสอบก่อนใช้งานจริง (สำคัญมาก)</strong></span><br />
<br />
ให้สั่ง <br />
<br />
<pre class='prettyprint'>service nginx restart</pre><br />
<br />
จากนั้นลองเข้าเว็บดู<br />
<br />
<a href='http://www.domain.com:85' class='bbc_url' title='External link' rel='nofollow external'>http://www.domain.com:85</a><br />
<br />
การเทสหนึ่งรูปต้องขึ้นทั้งหมด, สอง mod_rewrite ต้องใช้ได้ทั้งหมด, สามเทส sub domain ต้องทำงานได้ปกติทั้งหมด. ถ้าขาดแม้ข้อเดียวห้ามเปิดใช้งานจริงเพราะไม่ถือว่าเสถียรพอจะใช้ในระดับ sever production ได้.<br />
<br />
<br />
<span style='color: #0000FF'><strong class='bbc'>ขั้นตอนที่ 5: Forward port</strong></span><br />
<br />
<strong class='bbc'>5.1 สำหรับคนที่ไม่ได้ใช้ csf (คือใช้ iptables)</strong><br />
<br />
ให้สั่ง<br />
<br />
<pre class='prettyprint'>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 85</pre><br />
<br />
ในกรณีที่เกิดข้อผิดพลาดใด ๆ ก็ตามจะรูปไม่ขึ้นเหมือนตอนที่เทสก็ดีหรือ server load ผิดปกติให้สั่งย้อนคำสั่งด้านบน (เครดิตน้องมีน)<br />
<br />
<pre class='prettyprint'>iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 85 </pre><br />
<br />
หลังจาก FW port แล้วให้ตรวจสอบเว็บไซต์อีกครั้งแบบเดียวกับที่ทำในขั้นตอนที่ 4<br />
<br />
<strong class='bbc'>5.2 สำหรับคนใช้ csf</strong><br />
<br />
เนื่องจาก csf รุ่น version ใหม่ถ้าจะสั่ง FW Port ต้องทำผ่าน csf เท่านั้นทำผ่าน iptables ตรง ๆ ไม่ได้ครับ<br />
<br />
วิธีการคือเพิ่ม line<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>*|80|*|85|tcp</div></div><br />
<br />
เข้าไปที่ feature "Firewall redirect"<br />
<br />
จากนั้น restart csf<br />
<br />
<br />
<strong class='bbc'><span style='color: #0000FF'>ขั้นตอนที่ 6: ติดตั้อง mod_rpaf ให้กับ apache เพื่อให้ log ตรง </span></strong><br />
<br />
(Copy ของคุณ KKE มาเลยจากกระทู้ varnish)<br />
<br />
<pre class='prettyprint'>#wget http&#58;//stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
#tar xzf mod_rpaf-0.6.tar.gz
#apxs -cia mod_rpaf-2.0.c</pre><br />
<br />
จากนั้นแก้ไขไฟล์<br />
<br />
/etc/httpd/conf/extra/httpd-includes.conf <br />
<br />
โดยเพิ่มคำสั่งนี้ไว้ท้ายไฟล์ครับ<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so<br />
<br />
&lt;IfModule mod_rpaf-2.0.c&gt;<br />
RPAFenable On<br />
RPAFsethostname On<br />
RPAFproxy_ips <span style='color: #FF0000'><strong class='bbc'>ไอพีเซิร์ฟเวอร์ของคุณอันเดียวกับที่ใส่ใน nginx แหละ</strong></span><br />
RPAFheader X-Forwarded-For<br />
&lt;/IfModule&gt;<br /></div></div><br />
<br />
<br />
<br />
<span style='color: #0000FF'><strong class='bbc'>ขั้นตอนที่ 7: สั่งให้ nginx ทำงานทันทีเมื่อ restart เครื่องและ save iptables จากข้อ 5</strong></span><br />
<br />
<pre class='prettyprint'>/sbin/chkconfig nginx on</pre><br />
<br />
และ<br />
<br />
<pre class='prettyprint'>/etc/init.d/iptables save</pre><br />
<br />
<br />
<span style='color: #FF00FF'><strong class='bbc'>ข้อมูลควรรู้อื่น ๆ</strong></span><br />
<br />
1. สามารถเข้าดู nginx status ได้โดยพิมพ์ <a href='http://ip/nginx_status' class='bbc_url' title='External link' rel='nofollow external'>http://ip/nginx_status</a> ตาม stub_status ที่เราสั่งติดตั้งไปจากข้อ 1 <br />
<br />
2. วิธีเพิ่ม nginx ลงที่หน้าดู service ของ Directadmin (เครดิตคุณแมน KKE)<br />
<br />
<pre class='prettyprint'>nano -w /usr/local/directadmin/data/admin/services.status</pre><br />
<br />
จากนั้นเพิ่มโค๊ดด้านล่างไปที่ท้ายสุดของไฟล์<br />
<br />
<pre class='prettyprint'>nginx=ON</pre><br />
<br />
3. โดยส่วนตัวผมมองว่า log ของ nginx น่าเบื่อมากและบวมเร็วสุด ๆ ผมดูใน error log พบว่า log ส่วนมากจะเป็น "(110: Connection timed out)". ผมมองว่า log แบบนี้ผมไม่ต้องการเพราะเกิดขึ้นได้ตลอดเวลาทั้งวันด้วยหลายสาเหตุไม่ว่าคุณจะปรับค่า timeout เพิ่มยังไงก็จะต้องมี error แบบนี้. ส่วน access log ผมก็คิดว่าไม่จำเป็นเพราะ apache ทำการเก็บไว้อยู่แล้วผมไม่อยากให้มีการทำงานซ้ำซ้อน. และเปลือง io ด้วย. ถ้าใครคิดว่าแนวคิดแบบนี้ดีก็แก้ดังนี้นะครับ<br />
<br />
แก้ไฟล์ nginx.conf จาก<br />
<br />
<pre class='prettyprint'>error_log  /var/log/nginx/error_log debug;</pre><br />
<br />
เป็น (จะเก็บ error เฉพาะที่สำคัญจริง ๆ เช่น nginx ล่ม start ไม่ขึ้น)<br />
<br />
<pre class='prettyprint'>error_log  /var/log/nginx/error_log crit;</pre><br />
<br />
และ<br />
<br />
<pre class='prettyprint'>access_log  /var/log/nginx_host_general.access.log  main;</pre><br />
<br />
แก้เป็น<br />
<br />
<pre class='prettyprint'>access_log  off;</pre><br />
<br />
4. ผลการทดสอบส่วนตัวช่วงวันสองวันนี้คือหลังจากที่พายุเข้าไทยที่ server มีเว็บของศูนย์อุธกวิทยาภาคเหนือตอนบนอยู่และคนเข้ามากมายเพื่อเช็คเรื่องน้ำนี่แหละครับผู้ดูแลเว็บบอกว่าเชียงใหม่น้ำท่วมคนจะเข้ามาดูเว็บมาเพื่อเช็คข้อมูลพอเข้าไปดู apache server status โอ้แม่เจ้ามาเป็นกองทัพเลย. ทำให้ load average ขึ้นไปเยอะพอสมควรคือ 4.xx - 5.xx ตลอด. หลังจากที่ลองใช้ nginx แล้วพบว่า load average กลับมาอยู่ในสถานะปกติอีกครั้งคือ 1-2 ในช่วงปกติ และ 3.xx ในช่วง peak (ช่วง peak ของผมคือตอนเช้าโดยมาจาก exim เป็นหลัก). แต่ทั้งนี้<span class='bbc_underline'>ผลที่ได้จากแต่ละ server ย่อมมีความแตกต่างกันตามปริมาณของการเรียกใช้ static files</span> ถ้าเรียกใช้เยอะอยู่แล้วติด nginx ลงไป load average ก็จะลดลงมากทีเดียวครับ. ยิ่งเป็น server download file จะยิ่งเห็นได้ชัด.<br />
<br />
<br />
5. ถ้าท่านลองแล้วเจ๊ง PM มาถามผมได้หรือโพสที่กระทู้นี้ได้เลยผมยินดีอย่างยิ่งที่จะช่วยฟรีไม่คิดค่าใช้จ่ายใด ๆ ทั้งสิ้น.<br />
<br />
<span style='color: #FF0000'><strong class='bbc'>ท้ายสุดผิดพลาดอย่างไรต้องขออภัยไว้ล่วงหน้า <span class='bbc_underline'>Try with your own ris</span>k</strong></span><br />
<br />
 <img src='http://www.thaihosttalk.com/public/style_emoticons/default/0fbbf481.gif' class='bbc_emoticon' alt=':0fbbf481:' /> <br />
.]]></description>
		<pubDate>Tue, 02 Aug 2011 13:32:12 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32792-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%95%e0%b8%b4%e0%b8%94%e0%b8%95%e0%b8%b1%e0%b9%89%e0%b8%87-config-nginx-%e0%b9%81%e0%b8%9a%e0%b8%9a%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%95%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%a2%e0%b8%b8%e0%b9%88%e0%b8%87%e0%b8%ad/</guid>
	</item>
	<item>
		<title>วิธีลง Centos 6 domU บน Xen ที่ใช้ Debian Squeeze dom0</title>
		<link>http://www.thaihosttalk.com/topic/32782-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%a5%e0%b8%87-centos-6-domu-%e0%b8%9a%e0%b8%99-xen-%e0%b8%97%e0%b8%b5%e0%b9%88%e0%b9%83%e0%b8%8a%e0%b9%89-debian-squeeze-dom0/</link>
		<description><![CDATA[<strong class='bbc'>วิธีลง Centos 6 domU บน Xen ที่ใช้ dom0 เป็น Debian Squeeze<br />
</strong><br />
<span style='color: #8B0000'>ขอออกตัวก่อนนะครับว่าไม่ได้มีความรู้ Xen หรือ Centos มาก เพราะเพิ่งลง Xen ครั้งแรกไปได้เมื่อสองสามวันก่อน ส่วน Centos ก็เป็นการลงครั้งแรกในชีวิต (ปกติใช้ Debian) ที่อยากลอง Centos เพราะอยากลองเล่นพวก Control Panel ดูแล้วเห็นจะ support Centos ซะเยอะ แล้วพอดีกับ Centos 6 เพิ่งออกมาเลยอยากลองของดู :D<br />
</span><br />
ยังไม่ได้ลองเทสมากนะครับ เลยยังไม่รู้ว่ามันเสถียรแค่ไหน.. อ่อแล้วนี่ก็เป็น howto แรกที่เขียนครับ ผิดพลาดประการใดก็ขออภัยด้วยครับ<br />
<br />
<span style='color: #00FF00'>** วิธีการลงก็คล้ายกับ Wiki ของ Centos 5 แหละครับแต่ต่างกันตรงที่</span><br />
- ผมใช้ LVM แทนที่จะเป็นไฟล์<br />
- Install แบบ interactive แทนที่จะเป็นแบบ kickstart <br />
- ต้องแก้ MAC address ของ eth0 เพิ่มเติมเพื่อจะทำให้ใช้ได้<br />
<br />
สมมุติว่าได้มีการติดตั้ง Xen ลงบนเครื่อง Debian เรียบร้อยแล้ว<br />
<strong class='bbc'>1. ใช้ LVM เพื่อสร้าง Logical Volume</strong><br />
<pre class='prettyprint'># lvmcreate -n hostname-disk -L100G /dev/doms
</pre><br />
<strong class='bbc'>2. โหลด installation image จาก mirror</strong><br />
<a href='http://mirror.centos.org/centos/6/os/i386/isolinux/vmlinuz' class='bbc_url' title='External link' rel='nofollow external'>http://mirror.centos.org/centos/6/os/i386/isolinux/vmlinuz</a><br />
<a href='http://mirror.centos.org/centos/6/os/i386/isolinux/initrd.img' class='bbc_url' title='External link' rel='nofollow external'>http://mirror.centos.org/centos/6/os/i386/isolinux/initrd.img</a><br />
<br />
หรือ<br />
<br />
<a href='http://mirror.centos.org/centos/6/os/x86_64/isolinux/vmlinuz' class='bbc_url' title='External link' rel='nofollow external'>http://mirror.centos.org/centos/6/os/x86_64/isolinux/vmlinuz</a><br />
<a href='http://mirror.centos.org/centos/6/os/x86_64/isolinux/initrd.img' class='bbc_url' title='External link' rel='nofollow external'>http://mirror.centos.org/centos/6/os/x86_64/isolinux/initrd.img</a><br />
<br />
<strong class='bbc'>3. สร้าง configuration ไฟล์สำหรับ guest ตัวใหม่</strong><br />
<pre class='prettyprint'># vi /etc/xen/hostname.cfg
kernel = "/tmp/vmlinuz"
ramdisk = "/tmp/initrd.img"
name = "hostname"
memory = "2048"
disk = &#91;
		'phy:/dev/doms/hostname-disk,xvda,w,
	  &#93;
vif = &#91; 'bridge=xenbr0',&#93;
vcpus = 1
on_reboot = 'destroy'
on_crash = 'destroy'</pre><br />
<br />
<strong class='bbc'>4. เริ่มการ install</strong><br />
<pre class='prettyprint'># xm create /etc/xen/hostname.cfg -c</pre><br />
<br />
ตัว guest จะถูก boot ขึ้นมาเพื่อเริ่มการ install ให้ลงตามปกติ<br />
<br />
<strong class='bbc'>5. เปลี่ยน configuration เพื่อ boot guest</strong><br />
ลบบรรทัด kernel กับ ramdisk แล้วเพิ่มบรรทัด<br />
bootloader="/usr/bin/pygrub"<br />
<br />
<pre class='prettyprint'># vi /etc/xen/hostname.cfg
name = "hostname"
memory = "2048"
disk = &#91;
		'phy:/dev/doms/hostname-disk,xvda,w,
	  &#93;
vif = &#91; 'bridge=xenbr0',&#93;
vcpus = 2
bootloader="/usr/bin/pygrub"
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'</pre><br />
<br />
<strong class='bbc'>6. บู๊ท guest</strong><br />
<pre class='prettyprint'># xm create -c /etc/xen/hostname.cfg</pre><br />
<br />
ถ้าไม่มีปัญหาอะไร guest ก็จะถูกบู๊ทขึ้นมา<br />
<br />
<strong class='bbc'>7. แก้ network card ใช้ไม่ได้</strong><br />
จากการใช้คำสั่ง<br />
ifup eth0 จะทำให้เกิด error<br />
Device eth0 has different MAC address than expected, ignoring.<br />
<br />
เมื่อลองไปเปิดดูไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0 จะเห็นว่าได้มีการ config ค่า HWADDR เอาไว้ซึ่งดูเหมือนว่าจะไม่ถูกต้อง วิธีการดูว่าต้องใช้ค่าอะไร ให้กลับไปที่ dom0 แล้วใช้คำสั่ง xm network-list &lt;domain&gt; เพื่อหา MAC address ที่ถูกต้องพร้อมทั้งแก้ไฟล์ ifcfg-eth0<br />
<br />
ใช้คำสั่ง ifup eth0 เพื่อ bring up interface eth0 ขึ้นมา<br />
<br />
<strong class='bbc'>8. Update Xen kernel</strong><br />
ท่าน icez บอกมาว่า Centos 6 support อยู่แล้ว จึงไม่ต้องลง Xen kernel ครับ :D<br />
<br />
<del class='bbc'>เข้าใจว่าเนื่องจาก Centos 6 ยังใหม่อยู่จึงอาจจะไม่มี xen kernel นะครับ ผมได้ลองใช้คำสั่ง yum install kernel-xen ดู แต่รู้สึกว่าตัวที่ download มายังไม่ได้เป็นตัว optimize อยู่ดี<br />
<br />
ผลที่ได้จากการใช้คำสั่ง <br />
<pre class='prettyprint'>rpm -qa kernel&#092;*

kernel-2.6.32-71.el6.x86_64
kernel-firmware-2.6.32-71.29.1.el6.noarch
kernel-2.6.32-71.29.1.el6.x86_64</pre><br />
<br />
และ <br />
<pre class='prettyprint'>uname -a

Linux gamont 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux</pre></del><br />
<br />
มีรูปมาฝากด้วยครับ<br />
<img src='http://farm7.static.flickr.com/6015/5998629703_22a5c6b999.jpg' alt='Posted Image' class='bbc_img' /><br />
<br />
<img src='http://farm7.static.flickr.com/6132/5998629953_015cd530bd.jpg' alt='Posted Image' class='bbc_img' /><br />
<br />
<img src='http://farm7.static.flickr.com/6121/5998630173_28405c910b.jpg' alt='Posted Image' class='bbc_img' />]]></description>
		<pubDate>Mon, 01 Aug 2011 19:05:56 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32782-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%a5%e0%b8%87-centos-6-domu-%e0%b8%9a%e0%b8%99-xen-%e0%b8%97%e0%b8%b5%e0%b9%88%e0%b9%83%e0%b8%8a%e0%b9%89-debian-squeeze-dom0/</guid>
	</item>
	<item>
		<title><![CDATA[[How-to] Install Varnishd on CentOS+DA]]></title>
		<link>http://www.thaihosttalk.com/topic/32748-how-to-install-varnishd-on-centosda/</link>
		<description><![CDATA[<span class='bbc_underline'><br />
<strong class='bbc'>How-to Install Varnishd on CentOS+DA (by KKE)</strong></span><br />
<br />
หลังจากได้ทดลองติดตั้งใช้งานเป็นที่น่าพอใจ จึงนำวิธีการติดตั้งมาเผยแพร่ครับ<br />
หมายเหตุ: อันนี้ติดตั้งเฉพาะ http ที่ port 80 นะครับ สำหรับ https ที่ port 443 จะเข้าตรงที่ apache ไม่ผ่าน varnish<br />
หมายเหตุ: เครื่องที่มีมากกว่า 1 ip อาจจะมีปัญหากับ virtual host template นะครับ เพราะไม่ได้ทดสอบ แต่น่าจะใช้งานได้ และต้องเพิ่ม bind ip ให้ varnish ด้วย<br />
<br />
<span style='color: #ff00ff'><strong class='bbc'>Varnish Cache</strong> is an open source, state of the art web application  accelerator. You install it on your web server and it makes your  website fly.<br />
<a href='https://www.varnish-cache.org/' class='bbc_url' title='External link' rel='nofollow external'>https://www.varnish-cache.org/</a><br />
</span><br />
วิธีการติดตั้งนั้นจะใช้วิธี compile จาก source เอานะครับ ไม่ลงผ่าน yum หรือ apt<br />
<br />
<span style='color: #0000ff'><strong class='bbc'>ขั้นตอนที่ 1</strong> ติดตั้งและทดสอบการทำงานของ varnish ก่อนใช้งานจริง</span><br />
<br />
<strong class='bbc'>1.1: เตรียม dependencies ที่ varnish ต้องการ<br />
</strong>สำหรับ OS อื่นๆ ดูได้ที่ <a href='https://www.varnish-cache.org/docs/3.0/installation/install.html#source-or-packages' class='bbc_url' title='External link' rel='nofollow external'>https://www.varnish-...rce-or-packages</a><br />
สำหรับ CentOS<br />
<pre class='prettyprint'>
#yum  -y  install   automake   autoconf   libtool   ncurses-devel   libxslt   groff   pcre-devel   pkgconfig
</pre><br />
<br />
<strong class='bbc'>1.2: download varnish and compile<br />
</strong><pre class='prettyprint'>
#wget  http&#58;//repo.varnish-cache.org/source/varnish-3.0.0.tar.gz  (ถ้ามี 3.0.x ออกมาใหม่ก็โหลดตัวที่ออกใหม่ โดยเช็คได้จากหน้าเว็บ varnish)
#tar  xzf  varnish-3.0.0.tar.gz
#cd  varnish-3.0.0
#sh autogen.sh
#sh configure
#make
#make install
#ldconfig
 </pre><br />
<br />
<strong class='bbc'>1.3: ทดสอบ varnish ที่ port 8080<br />
</strong>หากมี firewall ให้ทำการเปิด port tcp 8080 ก่อน<br />
แก้ไขไฟล์ /usr/local/etc/varnish/default.vcl (เอา #remark 4 บรรทัดนี้ออก แล้วแก้ไขโดยที่ 123.123.123.123 เป็น ip จริงของ server)<br />
<pre class='prettyprint'>
backend default {
 	.host = "123.123.123.123";
 	.port = "80";
}
</pre><br />
start varnish ด้วยคำสั่ง<br />
<pre class='prettyprint'>
#varnishd  -f /usr/local/etc/varnish/default.vcl  -s malloc,512M  -T 127.0.0.1:2000  -a 123.123.123.123:8080
</pre><br />
<br />
ลองเรียกเว็บผ่าน port 8080 ดู ถ้าเข้าได้ตามปกติแปลว่า varnish ทำงานได้ถูกต้อง เช่น<br />
hxxp://www.domain.com:8080/index.php<br />
ทุก url ควรจะได้ผลลัพธ์เหมือนกับเรียกตามปกติที่ไม่ใส่ :8080 ทุกประการ<br />
<br />
<strong class='bbc'>1.4: stop varnish<br />
</strong><pre class='prettyprint'>
#killall varnishd
</pre><br />
<br />
<span style='color: #006400'>มาถึงตรงนี้เราก็พร้อมที่จะทำการสลับเอา varnish มาไว้ที่ port 80 และเอา apache ไปไว้ที่ port 8080 เพื่อใช้งานจริงกันแล้ว</span><br />
<span style='color: #0000ff'><br />
<strong class='bbc'>ขั้นตอนที่ 2 </strong>สลับ Apache ไปใช้งาน port 8080</span><br />
<strong class='bbc'>2.1: แก้ไขไฟล์ config ต่างๆเพื่อเปลี่ยน port apache ไปใช้งาน 8080<br />
</strong>ไฟล์ที่ต้องแก้ไขทั้งหมด<br />
/etc/httpd/conf/httpd.conf<br />
<del class='bbc'>/etc/httpd/conf/ips.conf</del> (ไฟล์ถูก DA เขียนทับเมื่อเพิ่ม domain)<br />
/etc/httpd/conf/extra/httpd-vhosts.conf<br />
/usr/local/directadmin/data/templates/custom/virtual_host2.conf<br />
/usr/local/directadmin/data/templates/custom/virtual_host2_sub.conf<br />
/usr/local/directadmin/data/templates/custom/redirect_virtual_host.conf<br />
--<br />
<br />
/etc/httpd/conf/httpd.conf<br />
จาก<br />
<pre class='prettyprint'>
Listen 80
</pre><br />
เป็น<br />
<pre class='prettyprint'>
Listen 8080
</pre><br />
<br />
<del class='bbc'>/etc/httpd/conf/ips.conf<br />
จาก<br />
</del><pre class='prettyprint'>
LogFormat "%O &#092;"%r&#092;"" homedir
NameVirtualHost 123.123.123.123:80
NameVirtualHost 123.123.123.123:443
</pre><br />
<del class='bbc'>เป็น</del> (ให้เพิ่มข้อความต่อไปนี้ที่ต้นไฟล์ /etc/httpd/conf/extra/httpd-vhosts.conf แทน และ remark บรรทัด include ips.conf ออก)<br />
<pre class='prettyprint'>
LogFormat "%O &#092;"%r&#092;"" homedir
NameVirtualHost 127.0.0.1:8080
NameVirtualHost 123.123.123.123:8080
NameVirtualHost 123.123.123.123:443
</pre><br />
<br />
/etc/httpd/conf/extra/httpd-vhosts.conf<br />
จาก<br />
<pre class='prettyprint'>
Include /etc/httpd/conf/ips.conf

#
#
&lt;VirtualHost 123.123.123.123:80&gt;
</pre><br />
เป็น<br />
<pre class='prettyprint'>
###Include /etc/httpd/conf/ips.conf
LogFormat "%O &#092;"%r&#092;"" homedir
NameVirtualHost 127.0.0.1:8080
NameVirtualHost 123.123.123.123:8080
NameVirtualHost 123.123.123.123:443

#
#
&lt;VirtualHost 127.0.0.1:8080 123.123.123.123:8080&gt;
</pre><br />
<br />
คัดลอกไฟล์ template มาไว้ใน custom เพื่อแก้ไข (ไฟล์ใน custom จะไม่ถูกทับเมื่อ update DirectAdmin)<br />
<pre class='prettyprint'>
#cp -p /usr/local/directadmin/data/templates/virtual_host2.conf  /usr/local/directadmin/data/templates/custom/virtual_host2.conf
#cp -p /usr/local/directadmin/data/templates/virtual_host2_sub.conf  /usr/local/directadmin/data/templates/custom/virtual_host2_sub.conf
#cp -p  /usr/local/directadmin/data/templates/redirect_virtual_host.conf  /usr/local/directadmin/data/templates/custom/redirect_virtual_host.conf
</pre><br />
<br />
/usr/local/directadmin/data/templates/custom/virtual_host2.conf<br />
/usr/local/directadmin/data/templates/custom/virtual_host2_sub.conf<br />
 /usr/local/directadmin/data/templates/custom/redirect_virtual_host.conf<br />
ทั้ง 3 ไฟล์แก้เหมือนกัน จาก<br />
<pre class='prettyprint'>
&lt;VirtualHost |IP|:80 |MULTI_IP|&gt;
</pre><br />
เป็น<br />
<pre class='prettyprint'>
&lt;VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|&gt;
</pre><br />
<br />
<strong class='bbc'>2.2: ติดตั้ง mod_rpaf เพื่อแก้ไข ip ของ remote host จาก 127.0.0.1 ที่เรียกมาจาก varnish ให้เป็น client ip ที่เรียกมาจริง<br />
</strong><pre class='prettyprint'>
#wget http&#58;//stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
#tar xzf mod_rpaf-0.6.tar.gz
#apxs -cia mod_rpaf-2.0.c
</pre><br />
<br />
แก้ไขไฟล์ /etc/httpd/conf/extra/httpd-includes.conf เพิ่มข้อความ<br />
<pre class='prettyprint'>
&lt;IfModule mod_rpaf-2.0.c&gt;
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For
&lt;/IfModule&gt;
</pre><br />
<br />
<strong class='bbc'>2.3 สร้างไฟล์ start/stop varnishd<br />
</strong>/etc/init.d/varnishd<br />
<pre class='prettyprint'>
#!/bin/sh
#
# Startup script for varnishd
#
# chkconfig: 2345 80 20
# description: Varnish Cache is an open source, state of the art web application accelerator. &#092;
#          	You install it on your web server and it makes your website fly.
# processname: varnishd
# config: /usr/local/etc/varnish/default.vcf
#
# By: Korakot E. &lt;korakot &#91;at&#93; pinkkeyhost.com&gt;
# $Id: varnishd.init.d,v 1.0 2011/07/27 23:23:23 kke $

# Source function library.
. /etc/rc.d/init.d/functions

MALLOC="512M"
BINDADDR="0.0.0.0:80"
TELPORT="2000"
CONFIG="/usr/local/etc/varnish/default.vcl"
OPTIONS="-f $CONFIG  -s malloc,$MALLOC  -T 127.0.0.1:$TELPORT  -a $BINDADDR"
 
if &#91; -f /etc/sysconfig/varnishd &#93;; then
  	. /etc/sysconfig/varnishd
  	OPTIONS="-f $CONFIG  -s malloc,$MALLOC  -T 127.0.0.1:$TELPORT  -a $BINDADDR"
  fi

PATH="$PATH:/usr/local/sbin"

# See how we were called.
case "$1" in
    	start)
            	echo -n "Starting varnishd: "
            	daemon varnishd $OPTIONS
            	echo
            	touch /var/lock/subsys/varnishd
            	;;
    	stop)
            	echo -n "Shutting down varnishd: "
            	killproc varnishd
            	echo
            	rm -f /var/lock/subsys/varnishd
            	;;
    	status)
            	status varnishd
            	;;
    	restart)
            	$0 stop
            	$0 start
            	;;
    	*)
            	echo -n "Usage: $0 {start|stop|restart|status}"
            	exit 1
esac

if &#91; $# -gt 1 &#93;; then
    	shift
    	$0 $*
fi

exit 0
</pre><br />
<br />
แก้ permission และกำหนดให้ varnishd ทำงานเมื่อ boot ระบบ<br />
<pre class='prettyprint'>
#chmod 755 /etc/init.d/varnishd
#chkconfig --add varnishd
#chkconfig varnishd on
</pre><br />
<br />
<strong class='bbc'>2.4: กำหนดค่า config ของ varnishd<br />
</strong>แก้ไขไฟล์ /usr/local/etc/varnish/default.vcl <br />
<pre class='prettyprint'>
backend default {
 	.host = "127.0.0.1";
 	.port = "8080";
}
</pre><br />
<br />
สร้าง/แก้ไขไฟล์ /etc/sysconfig/varnishd กำหนดค่า MALLOC ตามต้องการ (หรือจะแก้ไปในไฟล์ init.d ตรงๆเลยก็ได้ ก็ไม่ต้องสร้างไฟล์นี้)<br />
<pre class='prettyprint'>
MALLOC="1G"
BINDADDR="127.0.0.1:80,123.123.123.123:80"
TELPORT="2000"
CONFIG="/usr/local/etc/varnish/default.vcl"
</pre><br />
<br />
<strong class='bbc'>2.5: ทำการ rewrite config vhosts ของ apache ใหม่ตามไฟล์ template ที่ได้แก้ไขไป<br />
</strong><pre class='prettyprint'>
#echo "action=rewrite&value=httpd" &gt;&gt; /usr/local/directadmin/data/task.queue
</pre><br />
<span style='color: #ff0000'>รอประมาณ 1 นาที ให้ cron ทำงาน<br />
</span><pre class='prettyprint'>
#/etc/init.d/httpd restart
</pre><br />
<span style='color: #008000'>ถึงตรงนี้จะต้องเข้าเว็บผ่าน url :8080 ได้ (เข้าไปที่ apache ตรงๆ)<br />
</span><br />
<strong class='bbc'>2.6: start varnish<br />
</strong><pre class='prettyprint'>
#/etc/init.d/varnishd start
</pre><br />
<span style='color: #008000'>ถึงตรงนี้จะต้องเข้าเว็บผ่าน url ปกติได้ (เข้าผ่าน varnish)<br />
</span><br />
<strong class='bbc'>2.7: หากมี firewall สามารถปิด port 8080 ที่เปิดเพื่อทดสอบตอนแรกได้ เนื่องจาก varnish จะเรียกผ่าน 127.0.0.1<br />
</strong><span style='color: #ff0000'>หมายเหตุ: หากมี script ประเภทป้องกัน DDOS ให้แน่ใจว่ามันจะไม่ block 127.0.0.1 ไปใน firewall<br />
</span><br />
<strong class='bbc'>2.8: หากต้องการ start/stop varnishd ผ่าน service monitor ของ DA <br />
</strong>ให้แก้ไขไฟล์ /usr/local/directadmin/data/admin/services.status เพิ่มบรรทัดนี้ที่ท้ายไฟล์<br />
<pre class='prettyprint'>
varnishd=ON
</pre><br />
<br />
<span style='color: #0000ff'><strong class='bbc'>การ start/stop varnishd<br />
</strong></span><pre class='prettyprint'>
#/etc/init.d/varnishd start
#/etc/init.d/varnishd stop
#/etc/init.d/varnishd restart
</pre><br />
<strong class='bbc'><span style='color: #0000ff'><br />
เรียกดู stat<br />
</span></strong><pre class='prettyprint'>
#varnishstat
</pre><br />
<br />
<strong class='bbc'><span style='color: #0000ff'>เพิ่มเติม</span></strong><br />
ตัวอย่างค่า apache config ที่ผมใช้<br />
Timeout 35<br />
KeepAlive On<br />
MaxKeepAliveRequests 250<br />
KeepAliveTimeout 3<br />
<br />
&lt;IfModule mpm_prefork_module&gt;<br />
	StartServers           	10<br />
	MinSpareServers  	10<br />
	MaxSpareServers 	24<br />
	ServerLimit          	256<br />
	MaxClients           	256<br />
	MaxRequestsPerChild   10000<br />
&lt;/IfModule&gt;<br />
<br />
<br />
----<br />
<strong class='bbc'><span style='color: #ff00ff'>ใครจะเอาไปเผยแพร่ต่อ ใส่ credit + แหล่งที่มา ไว้ด้วยนะครับ<br />
บทความโดย: KKE &lt;korakot [at] pinkkeyhost.com&gt;<br />
</span></strong><pre class='prettyprint'>http&#58;//www.thaihosttalk.com/topic/32748-how-to-install-varnishd-on-centosda/</pre><br />
<br />
<strong class='bbc'> </strong>]]></description>
		<pubDate>Thu, 28 Jul 2011 13:45:34 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32748-how-to-install-varnishd-on-centosda/</guid>
	</item>
	<item>
		<title><![CDATA[[How-to] Install MyTop on CentOS+DA]]></title>
		<link>http://www.thaihosttalk.com/topic/32747-how-to-install-mytop-on-centosda/</link>
		<description><![CDATA[วิธีการลง mytop ในเครื่องที่ใช้ DirectAdmin นั้นก็ไม่ได้ยุ่งยากครับ ทำตามนี้เลยครับ<br />
<br />
1. ลง perl module ที่ mytop ต้องการให้ครบ<br />
#cpan install   DBI   Term::ReadKey   Term::ANSIColor   Time::HiRes   DBD::mysql<br />
(ถ้ามีขึ้นถาม yes/no ก็กด enter ผ่านไป)<br />
<br />
2. โหลด mytop มาติดตั้ง<br />
#wget <a href='http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz' class='bbc_url' title='External link' rel='nofollow external'>http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz</a><br />
#tar xzf mytop-1.6.tar.gz<br />
#cd mytop-1.6<br />
#perl Makefile.PL<br />
#make test<br />
#make<br />
#make install<br />
<br />
เรียกใช้ mytop ได้เลย<br />
#mytop -uda_admin -pxxxxxx<br />
<br />
---<br />
mytop - <a href='http://jeremy.zawodny.com/mysql/mytop/' class='bbc_url' title='External link' rel='nofollow external'>http://jeremy.zawodny.com/mysql/mytop/</a>]]></description>
		<pubDate>Thu, 28 Jul 2011 12:07:52 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32747-how-to-install-mytop-on-centosda/</guid>
	</item>
	<item>
		<title>มาเอา Service ไม่จำเป็นของ CentOS 5.x ออกกัน</title>
		<link>http://www.thaihosttalk.com/topic/32686-%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%ad%e0%b8%b2-service-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%88%e0%b8%b3%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%82%e0%b8%ad%e0%b8%87-centos-5x-%e0%b8%ad%e0%b8%ad%e0%b8%81%e0%b8%81%e0%b8%b1%e0%b8%99/</link>
		<description><![CDATA[และนี่คือ Service ทั้งหมดของ Redhat <a href='http://magazine.redhat.com/2007/03/09/understanding-your-red-hat-enterprise-linux-daemons/' class='bbc_url' title='External link' rel='nofollow external'>list of services</a><br />
<br />
ที่คิดว่าไม่จำเป็นอยู่ด้านล่างนี้ ก๊อบวาง reboot จบ<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>chkconfig anacron off<br />
chkconfig apmd off<br />
chkconfig atd off<br />
chkconfig autofs off<br />
chkconfig cpuspeed off<br />
chkconfig cups off<br />
chkconfig cups-config-daemon off<br />
chkconfig gpm off<br />
chkconfig isdn off<br />
chkconfig netfs off<br />
chkconfig nfslock off<br />
chkconfig openibd off<br />
chkconfig pcmcia off<br />
chkconfig portmap off<br />
chkconfig rawdevices off<br />
chkconfig readahead_early off<br />
chkconfig rpcgssd off<br />
chkconfig rpcidmapd off<br />
chkconfig smartd off<br />
chkconfig xfs off<br />
chkconfig ip6tables off<br />
chkconfig avahi-daemon off<br />
chkconfig firstboot off<br />
chkconfig yum-updatesd off <br />
chkconfig sendmail off<br />
chkconfig mcstrans off<br />
chkconfig pcscd off<br />
chkconfig bluetooth off<br />
chkconfig hidd off<br />
chkconfig xinetd off<br />
chkconfig acpid off<br />
chkconfig microcode_ctl off<br />
chkconfig irqbalance off<br />
chkconfig haldaemon off<br />
chkconfig messagebus off<br />
chkconfig mdmonitor off<br /></div></div>]]></description>
		<pubDate>Sat, 23 Jul 2011 18:35:51 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32686-%e0%b8%a1%e0%b8%b2%e0%b9%80%e0%b8%ad%e0%b8%b2-service-%e0%b9%84%e0%b8%a1%e0%b9%88%e0%b8%88%e0%b8%b3%e0%b9%80%e0%b8%9b%e0%b9%87%e0%b8%99%e0%b8%82%e0%b8%ad%e0%b8%87-centos-5x-%e0%b8%ad%e0%b8%ad%e0%b8%81%e0%b8%81%e0%b8%b1%e0%b8%99/</guid>
	</item>
	<item>
		<title>IPTables Rule ป้องกัน UDP Flood จาก PHP Script</title>
		<link>http://www.thaihosttalk.com/topic/32620-iptables-rule-%e0%b8%9b%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b1%e0%b8%99-udp-flood-%e0%b8%88%e0%b8%b2%e0%b8%81-php-script/</link>
		<description><![CDATA[เนื่องจากตอนนี้ มิจฉาชีพ ได้นิยมเช่่า Hosting เพื่อนำมาลง PHP Script สำหรับ UDP Flood Attack เครื่องอื่น<br />
ผมได้ไปขอความช่วยเหลือจาก คุณ icez และก็ได้ให้ Firewall rule มาดังนี้ครับ<br />
เพื่อป้องกันไม่ให้มีการ flood โดยใช้ php script ไปโจมตีเครื่องคนอื่นได้<br />
<br />
<pre class='prettyprint'>iptables -A OUTPUT -p udp -m owner --uid-owner `cat /etc/passwd|grep apache: |cut -d: -f3` --dport ! 53 -j DROP</pre><br />
<br />
<br />
<br />
Credit :: icez]]></description>
		<pubDate>Sat, 16 Jul 2011 11:22:24 +0000</pubDate>
		<guid>http://www.thaihosttalk.com/topic/32620-iptables-rule-%e0%b8%9b%e0%b9%89%e0%b8%ad%e0%b8%87%e0%b8%81%e0%b8%b1%e0%b8%99-udp-flood-%e0%b8%88%e0%b8%b2%e0%b8%81-php-script/</guid>
	</item>
</channel>
</rss>
