ปรับ Directadmin เพิ่มความแรงให้ Server ด้วย Nginx

แง่ว รูป mrtg ผมไ่ม่ขึ้น

ทั้งๆ ที่ปรับ location ใน /usr/local/nginx/conf/nginx.conf แล้ว

ท่านใดพอทราบบ้างไหมครับ

เช็ค path -

location ~* ^/(mrtg|imrtg)/.+.(jpg|jpeg|gif|png|html|htm)$ {

root /var/www/html/;

access_log off;

}

ถ้า mrtg ไม่ได้อย่ใน /var/www/html

create link directory :

ln -s target source_path

ขอบคุณครับ สนใจอยู่เหมือนกัน nginx แล้ว nginx นี่มัน rewrire ไม่ได้เลยเหรอครับ

Rewrite ได้ครับแต่ต้องเขียนใหม่ แต่ถ้าทำตามที่เสี่ยโป้งทำ ลองถามมาแล้วใช้ Rewrite ปกติ Apache ได้นะ

เพราะมันไป rewrite บน apache ไงครับ สำหรับพวกรัน php แต่ถ้าใช้ static file โต่งๆจะวิ่งเข้า nginx แทน

เพิ่มเติมให้สมบูรณ์

แบบลัดอีกหน่อย

cd /usr/local/directadmin/scripts/custom

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > domain_create_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > domain_destroy_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > domain_pointer_create_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > domain_pointer_destroy_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > subdomain_create_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > subdomain_destroy_post.sh;

echo “echo “/usr/local/directadmin/scripts/nginx_direct.sh -u $username” >> /usr/local/nginx/etc/task.nginx” > user_create_post.sh;

#สร้างไฟล์ nginx_sub.conf

vi /usr/local/directadmin/data/templates/custom/nginx_sub.conf



server {

        listen       |IP|:85;

        server_name  |SUB|.|DOMAIN| www.|SUB|.|DOMAIN|;

        access_log /var/log/httpd/domains/|DOMAIN|.|SUB|.log  main;

        error_log  /var/log/httpd/domains/|DOMAIN|.|SUB|.error.log error;

        location / {

                        proxy_pass         http://|IP|;

                        proxy_redirect     off;



                        proxy_set_header   Host             $host;

                        proxy_set_header   X-Real-IP        $remote_addr;

                        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

                        

                        client_max_body_size 10m;

                        client_body_buffer_size 128k;

                                        

                        proxy_connect_timeout 60;

                        proxy_send_timeout 90;

                        proxy_read_timeout 90;



			proxy_buffer_size 4k;

			proxy_buffers 120 64k;

			proxy_busy_buffers_size 64k;

			proxy_temp_file_write_size 64k;

			

                    }

location @back {

            proxy_pass         http://|IP|;

            proxy_redirect     off;

            proxy_set_header   Host             $host;

            proxy_set_header   X-Real-IP        $remote_addr;

            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        }

        #Static files location

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)$ {

            root |HOME|/domains/|DOMAIN|/public_html/|SUB|;

	    expires 14d;

            error_page   404  =  @back;

        }

    }




สร้างโฟลเดอร์

mkdir /var/run/nginx/

mkdir /usr/local/nginx/etc/

สร้างไฟล์เปล่า ชื่อ virtual.conf

vi /usr/local/nginx/etc/virtual.conf

สร้างโฟลเดอร์ log

mkdir /var/log/nginx

สร้างไฟล์เปล่า log

/var/log/nginx/error_log

### ถ้าใช้ apf ก็เพิ่ม rule เพิ่ม port 85

vi /etc/apf/conf.apf

#Ports for No Delay

TOS_16="…,85"

#และภายใน inbound

IG_TCP_CPORTS="…,85"

#ถ้าภายนอก access port 85 ได้เลย

#ก็เพิ่ม port 85 ที่ outbound ด้วย

EG_TCP_CPORTS="…,85"

#Restart apf

/etc/init.d/apf restart

ก็จะติดตั้งสมบูรณ์ครับ

ท่านใด เคยเจอปัญหา รูปผ่าน port 85 ไม่ขึ้นบ้างไหมครับ

ลงมา 2 เครื่องไม่้เจอ อีกเครื่อง เรียกเพ็จขึ้น แต่รูปไม่มา ><’ เช็ค config ต่างๆ ก็น่าจะถูกหมดแล้วนะครับ

กรณีนี้ไม่มี error log เลยงมอยู่นาน

วิธีแก้ไข เช็คว่า include มาครบไหม (จะเกิดขึ้นได้กรณีที่ string เพี้ยนครับ)

vi /usr/local/nginx/etc/virtual.conf

ถ้าไม่ครบ ลบทั้งหมด

rm -f /usr/local/directadmin/data/users/*/nginx.conf

cat /dev/null > /usr/local/nginx/etc/virtual.conf

#Rewrite All

/usr/local/directadmin/scripts/nginx_direct.sh all

ขอบคุณครับ

เดี่ยวจะเพลินได้ อย่าลืมครับว่าใช้กับ mod_rewrite ไม่ได้ ฉนั้นอาจส่งผลกับเว็บพวก CMS

เจอมาแล้ว ต้องเอาออกเลย เสียดายจริงๆ -*- ไวขึ้นมากครับ

mod_rewrite ใช้ได้นะครับ

ของผม Upgrade ใช้จะครบทุก Server แล้วครับ แต่จะมีปัญหาจุกจิกแค่นิดหน่อย ส่วนน้อยจะเป็นครับ

เว็บแรงปรีดๆๆๆๆ เลยครับ อาจจะมีปัญหากับลูกค้าบางราย ผมใช้วิธีย้ายลูกค้าที่ติดปัญหาไประบบเดิมอีก server หนึ่ง ของผมทำให้ vps ทั้งหมด เลยโยกง่ายหน่อยครับ

mod_rewrite บน apache หรือ nginx ครับ

ขอคำแนะนำหน่อยครับ

mod_rewrite มันทำงานบน apache อยู่แล้วครับ คือถ้า nginx หาไฟล์ไม่เจอมันจะส่งต่อให้ apache ครับ ซึ่งก็จะเข้า mod_rewrite ของ apache ครับ

ตัวอย่าง yourdomain.com แบบนี้นะครับ ไฟล์ news.html มันหาไฟล์ไม่เจอเพราะเราทำ mod_rewrite ไว้ nginx ก็จะส่งต่อให้ apache เลย

คราวนี้มันก็ไปอ่านไฟล์ .htaccess ครับ เองครับ

อ๋อถ้าใช้ fcgi นะครับ .htaccess จะใช้ พวก php_values ไม่ได้ หากไม่อยากให้เกิดปัญหาก็ไม่ต้องลง fcgi ก็ได้ครับ fcgi จะมีปัญหากับแค่ joomla ที่ใช้ mod_rewrite แบบไม่ใช้ .htaccess อันนี้ก็แค่แก้ให้มันใช้แบบ .htaccess ก็แก้ไขไม่ยากเลยครับ (จริงๆ joomla ควรใช้แบบ .htaccess จะดีกว่า เพราะเป็นผลดีกับ seo มากกว่า) สำหรับ joomla ที่มีปัญหาจะสังเกตุง่ายๆ ครับ มันจะพิมพ์ว่า yourdomain.com แบบนี้นะครับ ถ้าหากใช้แบบ .htaccess ก็จะเป็นแบบนี้ yourdomain.com แบบนี้จะไม่ error ครับ

จะมีปัญหากับแค่ joomla ที่ใช้ mod_rewrite แบบไม่ใช้ .htaccess

แล้วแต่ปรับครับ คนไม่รุ้ก็จะปรับแบบแรกซึ่งรั่วมาก ปรับแบบหลังแบบที่คุณ ems บอกมาดุดีกว่ามากครับ

แต่ไม่ทราบว่าพอทำแบบ apache + nginx ความเร็วยังเหมือนเดิมไหมครับ หรือพอเรียก mod_rewrite ผ่าน apache ก็ช้าเหมือนเดิม

สุดยอดเลยครับเสี่ยโป้ง

ผมก็หลงไหลในความแรงของ nginx มากๆ

ถ้าสามารถเอามาใช้งานร่วมกับ directadmin ได้อีก สะดวกโยธินเลยครับทีนี้

เสียอย่างเดียว nginx ไม่ยอมทำให้ตั้งค่าผ่าน .htaccess

ความสะดวกในการใช้งานเลยหายไปเยอะ เพราะอะไรๆก็ต้องตั้งใส nginx.conf หรือไม่ก็ defaults

ซึ่งทำให้ใช้งานแบบ share host ทำได้ยากมาก

วิธีนี้เป็นทางออกที่ดีมากๆครับ สำหรับ share host

ปัญหาที่เจอ ถ้าทำ proxy pass ไว้จะใช้ไม่ได้

หาวิธีแก้จนมึนละ

น่าจะแก้เป็น

rm -f /usr/local/directadmin/data/users/*/nginx.conf

ครับ

เข็ดเลยครับ ลงแล้วพังเลย -*-

ลองลงดู แบบงงๆ

ปรากฏว่า รูปไม่ขึ้น สักเวบ เลยสั่ง

 tail -f /var/log/nginx/error_log

ปรากฏว่า มัน หาไฟล์ไม่เจอเพราะชี้ไป /var/www หมด

เลยไปเช็คไฟล์

/usr/local/nginx/etc/virtual.conf

ปรากฏว่าว่างเปล่า เลยทำตาม rep ของ น้อง Mean แก้คำสั่ง rm -rf นิดหน่อย ก็เลยใช้ได้

ทีนี้ พอ start nginx ก็มีปัญหาอีก เพราะโดเมนเยอะมากก เลยขึ้น too many opened file

เลยไปค้นๆดุ ปรากฏว่าต้อง เพิ่ม limit เพราะตอนนี้ สามารถ open file พร้อมกันได้แค่ 1024

เลยทำตามนี้

แก้ไฟล์ /etc/security/limits.conf

เพิ่ม

* soft nofile 5000

* hard nofile 6000

ลงไป

จากนั้น แก้ไฟล์ /proc/sys/fs/file-max

nano /proc/sys/fs/file-max

แล้วเปลี่ยนค่าเป็น 70000

จากนั้นสั่ง

sysctl -w fs.file-max=100000

ulimit -n 63536


reboot สักรอบ เป็นอันเสร็จพิธี

Nginx ไม่ทำให้ผิดหวังอีกแล้วครับ

จาก loadavg 100+++ เหลือแค่ 3 หน่อยๆ

ตอนนี้กำลังเล็งๆว่าจะเอา php มารันผ่าน php-fpm ด้วย เพื่อเพิ่มความแรงเข้าไปอีก apache จะได้รับแค่ภาระของ modrewrite

ว๊าว +1

อันนี้ไม่จำเป็นต้องทำแบบเดียวกับอันแรกใช่ไหมครับ ทำอันนี้ก็ได้ใช่ไหม

ลองหละ php fpm พวก server parameter มีปัญหาบาน