วิธีติดตั้ง + config NGINX แบบไม่ต้องยุ่งอะไรกับ DA เลย ไม่ต้อง Run Cron, ไม่แก้ unlimit, รูปขึ้นทุกเว็บ

ลองไปเอา config จากอีกกระทู้มาก็ไม่รอดครับพอใส่ไปแล้วเว็บรูปไม่ขึ้นครับ

[COLOR=#FF0000]
#Static files location[/COLOR]

[COLOR=#FF0000]location ~* ^.+.(jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {[/COLOR]

[COLOR=#FF0000]root /var/www/html;[/COLOR]

[COLOR=#FF0000]}

[/COLOR]

config ไม่เหมือนหน้าแรกนิดนึงนะครับ แอบเติมส่วนของ security ของ คุณไอส์ลงไปครับ :slight_smile:

ปกติครับ
เพราะการ config แบบนี้ก็คือเอา nginx มาขวางเป็น proxy เฉยๆ ไม่ได้เข้าไปดึงไฟล์ตาม /home แต่ละ user ตรงๆ เหมือนกับอีกแบบที่ต้องไปแก้ไข virtualhost template
หากเรียกครั้งแรก nginx ก็จะส่ง request ไปยัง apache ไม่ว่าจะเป็น php หรือรูปภาพ jpg gif css ทั้งหมด เสร็จแล้วก็จะ cache พวกไฟล์รูปภาพเอาไว้
เวลาเรียกครั้งถัดไปก็จะไม่ส่ง request ที่เป็นพวกรูปภาพไปยัง apache อีก เว้นแต่ว่า cache ที่เก็บไว้ expire ก็ไปดึงมาใหม่อีกรอบ

สงสัยต้องไปลองแบบนั้นดูหน่อยครับ :875328cc:

สอบถามเพิ่มเติมครับผม

หากต้องการเขียน rule ว่า หากมีการโหลดไฟล์ .iso .zip .rar แล้วไม่ต้องผ่าน nginx ไม่ทราบว่าจะต้องเขียนอย่างไรครับผม

รบกวนทุกท่านด้วยครับ

ก็เอา

[COLOR=#FF0000]location ~* ^.+.(jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {

[/COLOR]เอานามสกุลไฟล์ตรงนี้้ออกไปครับ

ของผม config เดียวกัีบหน้าแรกเลยครับ แบบนี้ต้องเพิ่มบันทัดนี้เข้าไปหรือครับ

เพิ่มเติมครับ ผมใส่ไปแบบนี้ ภาพมันไม่ขึ้นทุกเว็บเลยครับ

#Static files location

location ~* ^.+.(jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {

root /home;

}

ตั้ง root ถูกปะครับ ?

ถ้าเป็น DA ก็น่าจะเป็น

location ~* ^.(jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
root /var/www/html;
}

ใช่แล้วครับ เป็น DA ครับผม

จุดประสงค์ของผมคือ
หากมีการดาวน์โหลดไฟล์พวก .zip .iso จากเว็บของ user จะไม่ให้ผ่าน nginx ครับ

เนื่องจากว่าหลังติดตั้ง nginx จะมีอยู่ 1 เว็บ ที่เจ้าของเว็บให้ลูกค้าเขามาโหลดไฟล์ .iso น่ะครับ
ทีนี้ load avg มันสูงมากประมาณ 100++ หากผมปลด iptables ที่ nat ไว้ออก คือไม่ต้องผ่าน nginx load จะเหลือ 1-2 เองครับ

เลยคิดว่าอยากจะ bypass ไฟล์พวก .iso .zip ไม่ต้องผ่าน nginx ครับผม

ผมว่าผมก็ตอบไปแล้วนะ ว่าให้เอานามสกุลไฟล์ที่ไม่ต้องการให้ผ่าน Nginx ออกไป ได้อ่านปะครับ ?

ขอบคุณมากครับผม
สงสัยผมตั้ง root ผิด เดี๋ยวขอทดสอบดูก่อนครับ

โดยความเห็นส่วนตัวนะครับ

ผมว่าเอา Nginx มาไว้ Port:80 แล้วย้าย Apache ไปไว้ xxxx เช่น 8888 etc.

ผมว่าประสิทธิภาพน่าจะดีกว่าการตั้งค่า Iptables, csf, etc. นะครับ

จากการคิดการคำนวนการ Access ของแต่ละครั้งของผู้ใช้งาน

แบบที่ใช้ Nginx Port อื่นที่ไม่ใช้ :80
:80 เข้าเว็บปกติ [COLOR=#ff0000][B]>>[/B][/COLOR] :85 Nginx [COLOR=#ff0000][B]>> [/B][/COLOR]:80 Apache [COLOR=#ff0000][B]>>[/B][/COLOR] :85 Nginx [COLOR=#ff0000][B]>>[/B][/COLOR] Response กลับไปหาผู้ใช้งาน

แบบที่ใช้ Nginx Prot :80
:80 เข้าเว็บปกติ + Nginx [COLOR=#008000][B]>>[/B][/COLOR] :xxx Apache [COLOR=#008000][B]>>[/B][/COLOR] :80 Nginx [COLOR=#008000][B]>>[/B][/COLOR] Response กลับไปหาผู้ใช้งาน

ผมลองใส่
location ~* ^.(jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
root /var/www/html;
}

จากนั้น ทดสอบเรียก url ไฟล์ iso เพื่อให้ browser ดาวน์โหลดดู ผลคือ load avg ก็ขึ้นเหมือนเดิมครับ
จากนั้น ผมลองเอา nat ออกก่อน แล้วสั่งโหลดไฟล์ใหม่ โหลดกลับไม่ขึ้นครับผม

คือถ้าโหลดผ่าน apache load average ไม่ขึ้น แต่บน nginx ขึ้นเหรอครับ

แปลว่า nginx ถ้าให้มันจัดการไฟล์ใหญ่ๆ อย่างการดาวน์โหลดไม่เวิร์คเหรอครับ

น่าสนใจมากครับ
แปบบนี้ mod_rewrite ก็ยังใช้ได้ไม่มีปัญหาใช่มั้ยครับ

ถ้าช่วงทดสอบก็ใช้ iptable ได้ แต่ถ้าจะใช้กันยาวๆ ผมว่าตามข้างบนว่า คือเอา nginx มาไว้ 80 ตรงๆเลยดีกว่า

การที่โหลดขึ้นผมว่าไม่เกี่ยวกับ nginx หรือ apache หรอกครับ แต่มันมาจากที่ forward port มากกว่า
เพราะปกติแล้วตัว nginx นั้นจัดการกับ static file ได้ดีกว่า apache อยู่แล้ว

ใช่แล้วครับผม

ครับพี่แมน ขอบคุณมากครับ

“nginx นั้นจัดการกับ static file ได้ดีกว่า apache อยู่แล้ว” ไม่เถียงฮะ แต่ต้องให้ nginx อ่านไฟล์ตรงๆ ไม่ใช่อ่านแล้วมา cache ด้วยคำสั่ง proxy_cache ครับ

เอ่อ เอาจริงการเซตวิธีนี้ nginx มันไม่ได้ไปอ่านไฟล์ตรงๆ นะคัรบ

ตามพี่ไอซ์ครับ

config นี้เหมือนจะเป็นการ cache ไฟล์ แล้วให้เราไปเรียกไฟล์จาก cache อีกทีนึง

ถ้าไฟล์มีขนาดใหญ่ ก็ cache เก้บไว้ และไปโหลดตจาก cache อีกทีนึง … ความเร็วต่างๆนาๆก็ดูจากที่ proxy_* ทั้งหลายนั้นแหละครับ

ที่มันโหลดขนาดใหญ่ ผมเดาว่ามัน cache ไฟล์ไม่ได้ทั้งหมด เลยแบ่งออกป็น fragment แล้วดึงเข้าดึงออกเอามาให้โหลด (นั่นเลยเป็นเหตุผลที่มันโหลดสูง)

ปล. ผมเดาล้วนนะ แต่น่าจะใช่

เข้าไปเคลียร์ cache ใน folder cache ยังครับ ?

อ้อใช่ มันมี 2 หัวข้อ update พร้อมๆกัน สับสนเลย
แบบไม่แก้ DA แบบกระทู้นี้คือให้ nginx ไปดึงไฟล์ผ่าน apache อีกที ถ้าเจอไฟล์ใหญ่ๆ ก็กลายเป็นผ่านทั้ง apache และ nginx
ส่วนอีกกระทู้นึงจะเป็นการ config ให้ nginx bypass apache ไปอ่านไฟล์ของแต่ละ home user ตรงๆเลย