Archive for the ‘Web Server’ Category

0104 | ปุ่มอัพโหลดรูปเข้า upic.me ด่วนทันใจ

Sunday, July 11th, 2010 Posted in PHP Coding, Web Server | 128 Comments »

คุณสมบัติ

– upload รูปได้ทุก format ที่ upic.me รองรับ ขนาดใหญ่ได้ถึง 2MB
– เลือกอัพได้ทีละหลายๆ รูปเหมือนหน้าแรก upic.me ด้วย
– มีสถานะการ upload ขึ้นตลอดการอัพ และจะหายไปเองเมื่ออัพเสร็จ
– อัพเสร็จ code ขึ้นในกล่องข้อความทันที ไม่ต้องก๊อปวาง
– ปรับแต่งหน้าตา สีสันของปุ่มได้ตามสะดวก (ส่วนแก้ไขข้อความ จะทำ version ถัดไปครับ)
– เอาไปใช้กันได้ฟรีๆ ไม่ต้องแปะ link กลับ ไม่ต้องแปะเครดิตใดๆ ทั้งสิ้น
– ไม่เปลือง bandwidth ของ host ด้วย เพราะอัพตรงเข้ามาที่ server ของ upic.me เลย

ถ้างงยังไงลองดูตัวอย่าง code ด้านล่างได้เลยครับ

<script type="text/javascript" src="http://upic.me/js/embedupload.js"></script>
<script type="text/javascript">
upic_target = "targetelement";
upic_type = "resulttype";
upic_buttoncss += "appendcss";
</script>

upic_target => จะให้เอา code ไปแปะที่ช่องไหน
upic_type => รูปแบบ code ที่แปะ มี htmlfull / htmlthumb / bbfull / bbthumb (ถ้าไม่ระบุ จะถือว่าเป็น bbthumb ครับ)
upic_buttoncss => css เสริมสำหรับข้อความในปุ่ม เผื่ออยากแก้สีแก้รูปแบบ ใส่ไปได้เลยครับ (การใส่สี รองรับ code แบบ #abcdef เท่านั้นนะครับ)

ส่วน uploadprogress จะมีประมาณนี้ครับ

<style type="text/css">
#upic_uploader{}
#upic_uploadprogress{}
.progressWrapper{margin-top:5px;}
.progressContainer{border-bottom:1px dotted #ddd;padding:2px;}
.progressName{text-align:left;color:black;margin-left:2px;float:left;}
.progressBarStatus{color:#666;text-align:right;margin:1px 1px 0 0;font-size:9px;}
.red{border:solid 1px #B50000;background-color:#FFEBEB;}
.green{border:solid 1px #DDF0DD;background-color:#EBFFEB;}
.blue{border:solid 1px #CEE2F2;background-color:#F0F5FF;}
.progressBarInProgress,.progressBarComplete,.progressBarError{clear:both;font-size:0;width:0%;height:2px;background-color:blue;margin-top:4px;}
.progressBarComplete{width:100%;background-color:green;visibility:hidden;}
.progressBarError{width:100%;background-color:red;visibility:hidden;}
</style>

(พอดีมันผ่าน compressor มาหลายรอบ code เลยดูยากหน่อย ขออภัยด้วยครับ)
ถ้าอยากแก้ไขหน้าตาสีสันยังไง สามารถ copy code ด้านบนไปแก้ไข แล้วใส่ต่อจาก script ได้เลยครับ

Read the rest of this entry »

Tags: , ,

0102 | MRTG monitoring script for nginx

Tuesday, July 6th, 2010 Posted in IP Network, Web Server | 1 Comment »

สร้างไฟล์ /root/bin/mrtg-nginx.pl ข้อมูลตามนี้

#!/usr/bin/perl
# $Revision: 2 $
# $Date: 2008-09-12 15:11:40 +0300 (Fri, 12 Sep 2008) $
 
my %opt = (
# http link to nginx stub_status, be sure turn on stub_status in nginx conf
    nginx_status   => 'http://localhost:80/status',
# path for program what may dump web page, normaly lynx -dump
#    lynx            => 'lynx -dump',
    lynx            => 'wget -q -Y off -O -',
);
 
$opt{var} = $ARGV[0] if $ARGV[0];
$opt{nginx_status} = $ARGV[1] if $ARGV[1] and $ARGV[1]=~/^http:\/\/\w+/;
$opt{var} ||= '';
 
my $do = `$opt{lynx} $opt{nginx_status}`;
 
if ($opt{var} eq 'req') {
    $do=~/^Active connections:\s*(\d+)\s*$/ms or warn "Error! Can't find data!\nIN :\n$do";
    $opt{d2} = $opt{d1} = $1;
}
elsif ($opt{var} eq 'con') {
    $do=~/^\s*(\d+)\s+(\d+)\s+(\d+)\s*$/ms or warn "Error! Can't find data!\nIN :\n$do";
    $opt{d2} = $opt{d1} = $3;
}
#elsif { $do=~/^Reading:\s+(\d+).*Writing:\s+(\d+).*Waiting:\s+(\d+)/; }
else {
    $opt{var} = 'ERROR';
    $opt{d2} = $opt{d1} = 0;
    warn "Error! Please read the help and set (req|con)\n";
}
 
print "$opt{d1}\n";
print "$opt{d2}\n";
#print "$opt{up}\n" if $opt{up};
print "Nginx $opt{var}\n";

เสร็จแล้วสั่ง
chmod a+x /root/bin/mrtg-nginx.pl
ให้รันได้

แล้วเอาไอ้นี่ไปใส่ใน nginx.conf ส่วนของ vhost นะครับ

location /status {
    stub_status on;
    access_log off;
}

แล้วก็… อันนี้เอาไปใส่ใน mrtg.cfg

Target[nginx.newconns]: `/root/bin/mrtg-nginx.pl con`
Title[nginx.newconns]: NGINX Connections
PageTop[nginx.newconns]: <H1>NGINX Connections</H1>
MaxBytes[nginx.newconns]: 10000000000
ShortLegend[nginx.newconns]: c/s
YLegend[nginx.newconns]: Conns / sec
LegendI[nginx.newconns]: In
LegendO[nginx.newconns]:
Legend1[nginx.newconns]: New inbound connections
Legend2[nginx.newconns]:
Options[nginx.newconns]: growright,nopercent
 
Target[nginx.requests]: `/root/bin/mrtg-nginx.pl req`
Title[nginx.requests]: NGINX Requests
PageTop[nginx.requests]: <H1>NGINX Requests</H1>
MaxBytes[nginx.requests]: 10000000000
ShortLegend[nginx.requests]: req
YLegend[nginx.requests]: Req
LegendI[nginx.requests]: In
LegendO[nginx.requests]:
Legend1[nginx.requests]: New inbound connections
Legend2[nginx.requests]:
Options[nginx.requests]: growright,nopercent,gauge

Tags: ,