Category Archive Nginx

Byphunsanit

เซ็ต SSL เร็วและฟรีใน 5 นาที

ตั้งแต่ google ใช้ SSL ออกมาเป็นเงื่อนไขในการทำ SEO ทำให้ทุกเว็บต้องมาเปิดใช้ SSL ไม่งั้นอันดับจะตกลง

สามารถขอ SSL ฟรีได้ง่ายๆ โดยใช้บริการของ http://Let’s Encrypt’s เปิดให้ใช้ฟรีหรือจะบริจาคเล็กน้อยตามศรัทธาก็ได้ การติดตั้งง่ายๆ โดย

  • Web Hosting who support Let’s Encrypt จะเป็น host ที่ support อยู่แล้วสามารถเปิดใช้ได้เลยอย่าง hostgator.com
  • ใช้ certbot instructions เลือกว่าใช้ Apache, Haproxy, Nginx, Plesk และ os ที่ใช้อย่าง Arch Linux, CentOS 6, Debian, Fedora, FreeBSD, Gentoo, macOS, OpenBSD 6.0+, openSUSE, RHEL, Ubuntu, Windows มันจะบอกวิธิติดตั้งมาให้ภายใน 5 นาทีเว็บก็ใช้ SSL ได้เลยทุก domain !!!

อย่าง server ผมก็ทำแค่ SSH เข้าไปที่ host แล้วพิมพ์ตาม

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --apache
sudo certbot certonly --apache

แล้วทดลองเรียกเว็บโดยใช้ SSL เท่านั้นเอง ง่ายจริงๆ

Byphunsanit

NGINX: แสดงผลลัพธ์ทันที

บางครั้งที่ทำงานที่ใช้เวลานาน เช่น การเปลี่ยนค่าข้อมูลในตารางทั้งตาราง แต่ php จะแสดงผลลัพธ์ออกมาหลังจากที่มันทำงานเสร็จแล้ว user ก็คิดว่ามัน error ก็เลยปิดไปซะ T_T วิธีที่ใช้ได้คือ การปล่อย flush output ออกมาเป็นระยะโดยเล่นกับพวก function ob_flush เหมือนในที่เคยเขียนไว้ jQuery: Ajax รับข้อมูลแบบ stream แต่กลับไม่ทำงานบน nginx ซะงั้น

วิธีแก้คือใส่

header('X-Accel-Buffering: no');

เพื่อให้ nginx มันส่งข้อมูลที่อมเอาไว้ออกมาซะดีๆ (ถ้าไม่ echo อะไรเลยระหว่างการทำงานเอนจิ้นเอ็ก มันก็ error อยู่ดีเอาใจยากจริงๆ) นี่เป็นตัวอย่าง code ใหม่

<?php
header('X-Accel-Buffering: no');

set_time_limit(0);

ob_implicit_flush(true);
ob_end_flush();

$steps = 100;
for ($step = 1; $step <= $steps; $step++) {
    $time = rand(1, 10);
    sleep($time);
    echo '<br>ขั้นตอนที่ ', $step, ' จาก ', $steps, ' ใช้เวลาทำงาน ', $time, ' วินาที';
}

อ่านเพิ่มเติม