mod_proxy

ทำไว้เมื่อสองหรือสามอาทิตย์ก่อนไม่แน่ใจแต่ไม่ได้จดไว้ เดี๊ยวลืมวันนี้ว่างๆ เลยจดไว้ซะหน่อย(ว่างจริงหรอฟะ) สำหรับปัญหาที่ทำให้ต้องติดก็คือ เวลามีคนมาโหลดไฟล์ใหญ่ๆ จากเซิร์ฟเวอร์มากๆ เนี๊ยะเว็บเซิร์ฟเวอร์ที่แสนดีอย่าง Apache มันก็จะอืดลงไปทันตาเห็น คือเข้าเว็บที่เป็น php ธรรมดากว่าจะประมวลผลแล้วส่งกลับมาต้องรอเป็นนาที ไม่รู้มันทำอะไรของมัน แต่จะทิ้งไว้ก็ใช่ที่ ฉะนั้นอย่ารอช้าเลย เอาพวกไฟล์ใหญ่ๆ เหล่านี้ย้ายไปให้ lighttpd ทำแทนดีกว่า มันตายไปตัวหลักก็ยังรอดด้วย(แต่เท่าที่เห็น มันไม่เคยตายเลยแฮะ ทนกว่า Apache อีก -_-”)

อ้อสำหรับใครที่ยังไม่รู้ว่าผมทำอะไร ทำไมมันถึงมีไฟล์ขนาดใหญ่ จริงๆ แล้วเซิร์ฟเวอร์นี้มีโดเมนย่อยอยู่อันนึงไว้เป็นที่ดาวโหลดลินุกซ์(และอื่นๆ อีกมากมายสำหรับเขียนโปรแกรม) เก็บไว้อยู่ด้วย ใครอยากดูหรืออยากโหลดก็เข้าไปที่ http://mirror.nytes.net ได้หรืออยากให้เพิ่มอะไรที่ไม่เถื่อนก็บอกมาละกัน ถ้าพื้นที่ยังเพียงพอก็จะพยายามยัดเข้าไปให้

อ่าวบ่นเยอะและเขียนวิธีทำบ้างดีกว่า

  1. เริ่มจากติด lighttpd ก่อนโดยไปที่ /usr/port/www/lighttpd แล้วก็​ make install ธรรมดาอันนี้ไม่มีอะไรพิเศษ
  2. ไปที่ /usr/port/www/apache22 แล้ว make config จากนั้นเลือก mod_proxy, mod_proxy_connect และ mod_proxy_http เพิ่มแล้วก็เลือก ok ออกไป
  3. สั่ง make deinstall install -DFORCE_PKG_REGISTER เพื่อขืนใจให้มันลงใหม่ให้ จริงๆเกิดจากเปลี่ยน mpm ด้วยแต่ก่อนใช้ prefork ตอนนี้เปลี่ยนเป็น worker มันเลยไม่ยอมเชื่อฟังจนถึงบัดนี้เลยแฮะ
  4. แก้ไฟล์ httpd.conf โดยเพิ่มบรรทัดด้านล่างลงไป
    LoadModule proxy_module libexec/apache22/mod_proxy.so
    LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
    LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
    
  5. จากนั้นไปแก้ไฟล์ที่เก็บข้อมูล virtual host ต่างๆ ให้บอกว่า path ไหนจะส่งไปที่ไหนแทน อย่างที่ใช้อยู่นี่จะให้ใครก็ตามที่เรียกมาที่ mirror.nytes.net จะส่งไปที่ lighttpd แทนไม่ให้ apache ทำงานก็เลยไปแก้ vhost ของ domain nytes.net โดยเพิ่มบรรทัดด้านล่างไป
    
      ServerName mirror.nytes.net
      ProxyRequests Off
      ProxyPreserveHost On
      ProxyPass / http://localhost:81/
    
    
  6. reload apache รอบนึงแล้วรอดูผลงาน

About llun

Just a programmer

, ,