สำนักวิทยบริการและเทคโนโลยีสารสนเทศ

Office of Academic Resources and Information Technology

อรรถพล คงหวาน's blog

การเพิ่มขีดจำกัดในการเปิด Socket Connection ใน Ubuntu

ผมได้พัฒนาระบบตัวหนึ่ง ซึ่งจะต้องรองรับการเปิด Socket จำนวนมาก แล้วก็เจอปัญหาว่า error: [Errno 24] Too many open files เนื่องจากระบบได้จำกัดจำนวนการเปิดไฟล์จำนวนมาก ซึ่งรวมไปถึงการเปิด Socket ด้วยครับ ดังตัวอย่างนี้ครับ
ERROR:tornado.application:Exception in I/O handler for fd 4
Traceback (most recent call last):
  File "/home/rmutsv/wpad/tornado/ioloop.py", line 672, in start
  File "/home/rmutsv/wpad/tornado/stack_context.py", line 331, in wrapped
  File "/home/rmutsv/wpad/tornado/stack_context.py", line 302, in wrapped

การสร้าง Self-Signed SSL Certificate สำหรับการทดลองหรือใช้ภายในองค์กร

การพัฒนาระบบเวบแอปพลิเคชั่นที่ผ่านโปรโตคอล http นั้น ข้อมูลที่วิ่งในระบบจะไม่ถูกเข้ารหัส ทำให้อาจเกิดการดักจับข้อมูลหรืออื่น ๆ ซึ่งสร้างความไม่ปลอดภัยในการใช้งาน เพื่อความปลอดภัย เราควรให้เวบแอปพลิเคชั่นของเรา วิ่งบนโปรโตคอล https ซึ่งมีการเข้ารหัสข้อมูล และเราต้องใช้ SSL Certificate โดยต้องเสียตังให้กับองค์กรที่รับรองการออก SSL Certificate เหล่านี้ให้กับเรา แต่ถ้าเราอยากจะสร้าง SSL Certificate ของเราเอง เพื่อทดลองหรือใช้ภายในองค์กร เราก็สามารถทำได้ง่าย ๆ ในระบบ Ubuntu ด้วยคำสั่ง openssl ง่าย ๆ ดังนี้ครับ

การกำหนด Proxy ให้กับ Ubuntu Server

ในการใช้งาน Server บางครั้ง เราก็ต้องการให้ดาวน์โหลดข้อมูลต่าง ๆ โดยผ่าน Proxy เพื่อประโยชน์ในเรื่องของการ Caching ข้อมูล และประหยัด Bandwidth ของอินเตอร์เน็ต โดยใน Ubuntu Server นั้นเราสามารถกำหนด Proxy ได้ดังนี้ครับ

ทำการแก้ไขไฟล์ /etc/environment

File: /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

no_proxy="localhost,127.0.0.0/8,172.16.0.0/12"

การแก้ไขให้ Ubuntu Server กลับมาใช้ระบบเครือข่ายได้ หลังจากเปลี่ยน Network Card

  ผมได้ลงระบบ Ubuntu Server ในระบบ KVM แล้วได้มีการเปลี่ยนค่า Mac Address เพื่อความสะดวกบางประการ ซึ่งเปรียบเสมือนการเปลี่ยน Network Card ทำให้เมื่อบูตระบบแล้ว ตัว Ubuntu Server อาจจะไม่เห็นหรือใช้งาน Network Card นั้นไม่ได้ แต่เรามีวิธีแก้ไขดังนี้ครับ

ทำการแก้ไขไฟล์ /etc/udev/rules.d/70-persistent-net.rules

File: /etc/udev/rules.d/70-persistent-net.rules