ดู ๆ ข้างในแล้ว เหมือนจะทำขึ้นเพื่อ php มากเลย -.-"
(เอาเป็นว่ารายละเอียดไว้ทีหลัง การติดตั้งหรืออะไรต่าง ๆ หรือไปอ่านเองก่องเถอะครับ เหอ ๆ ว่าง ๆ คงได้เอามาลงครับ)
ตอนนี้จะเป็นการ เปลี่ยน path url การเข้าถึง และ เปลี่ยน port url พร้อม ๆ กัน
(สถาณการณ์บีบบังคับ ทำให้งานออกมาได้จิง ๆ ไม่ต้องรอ บริ้วววว อารมณ์)
งานคือ url ที่ client เรียกเข้าถึงเป็น
http://www.vserver.com/gw/mo/oper1
server ตั้งอยู่ที่ (url จริง ในการใช้งาน)
http://www.vserver.com:8081/req/oper1
ในส่วนของ oper นั้น จะมี oper1, oper2, oper3 ครับ
ขึ้นตอนแรก เข้าไปหา file ชื่อว่า
/etc/lighttpd/lighttpd.conf
เผอิญว่า ทางพี่ ๆ เค้าลงไว้บน ubuntu ให้เสร็จแล้ว ไม่แน่ใจนะครับว่าอยู่ pathนี้ตลอดเปล่า
ขึ้นที่สอง ก็ไปเพิ่ม หรือเอา comment ออกครับในส่วนของ
(comment คือ เครื่องหมาย # หน้าบรรทัด หรือ ข้อความ)
server.modules = (
"mod_xxxxxxxx", # << 'xxxxxxxx' อันนี้ละไว้ว่าอันอื่น ๆ ครับ
# "mod_xxxxxxxx", # << แบบนี้คือ comment
"mod_rewrite",
"mod_redirect",
"mod_proxy"
)
ขั้นที่ 3 นั้น แบ่งเป็น 2 ส่วนครับ
3.1 ใช้แบบ redirect
กรณีนี้จะสั้นครับเหมาะกับการเข้าถึง หรือ ใช้ http method get ครับ
#-----------------------------------
$HTTP["host"] == "www.vserver.com" {
url.redirect = ("^/gw/mo/(.+)" => "http://www.vserver.com:8081/req/$1")
}
#-----------------------------------
$HTTP["host"] == "www.vserver.com" { # << เป็นเหมือนคำสั่งใช้ในการ if คือ ถ้า url เป็นชื่อนี้ก็จำเข้ามาทำงาน
(.+) # << เป็นการแทนค่า path url และ parameter ที่ต่อท้าย เพื่อนำมาแทนใน $1 และสามารถกำหนดได้มากกว่า 1 ตัว เช่น ข้อมูลมาในแบบ rest คือ /gw/mo/(.*)/(.*)/(.*) => /gw/mo/$1?id=$2&price=$3 เป็นการแปลงเป็น name value ธรรมดาครับ
3.2 ใช้แบบ rewrite
กรณีนี้จะต้องทำสองอย่างครับ คือ เปลี่ยน path url ก่อน แล้วค่อย proxy ยัง post ที่ต้องการครับ เนื่องจาก 3.1 นั้นใช้ได้แต่เฉพาะ http method get ถ้าจะใช้ http method post ก็คงเขียนยาวหน่อยครับ
#-----------------------------------
$HTTP["host"] == "www.vserver.com" {
url.rewrite-once = ("^/gw/mo/(.*)$" => "/req/$1")
$HTTP["url"] =~ "^/req" {
proxy.server = (
"" => (
"vserver" => (
"host" => "127.0.0.1",
"port" => 8081,
"fix-redirects" => 1
)
)
)
}
}
#-----------------------------------
เสร็จแล้วก็ทำการ restart ด้วยคำสั่ง
#-----------------------------------
$ /etc/init.d/lighttpd restart
#-----------------------------------
ก็เป็นอันเรียบร้อยครับ
อ๋อ ในกรณี post data xml
syntax จะ ประมาณนี้
<xml> <data> data 123 abc... </data> </xml>
เมื่อทำการ post ให้ใส่ content type : text/xml ด้วยครับ
ไม่ใช่นั้น ปีกกว่าจะเปลี่ยนไป จะได้ประมาณนี้ครับ
%3Cxml%3E %3Cdata%3E data 123 abc... %3C2Fdata%3E %3C%2Fxml%3E
จบแต่เพียงเท่านี้ -.-" กว่าจะหาเจอ ตอนแรกไม่รู้ว่ารวมเป็น combo ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น