ฉันมีคำถามเกี่ยวกับการใช้คอมพิวเตอร์เป็นเว็บเซิร์ฟเวอร์ เหตุใดคอมพิวเตอร์บางเครื่องจึงสามารถเป็นเว็บเซิร์ฟเวอร์ได้ คุณสมบัติอะไรที่ทำให้มันสามารถเป็นเว็บเซิร์ฟเวอร์ได้ มีกรณีใดบ้างที่คอมพิวเตอร์ไม่สามารถทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ได้หรือไม่?
ฉันมีคำถามเกี่ยวกับการใช้คอมพิวเตอร์เป็นเว็บเซิร์ฟเวอร์ เหตุใดคอมพิวเตอร์บางเครื่องจึงสามารถเป็นเว็บเซิร์ฟเวอร์ได้ คุณสมบัติอะไรที่ทำให้มันสามารถเป็นเว็บเซิร์ฟเวอร์ได้ มีกรณีใดบ้างที่คอมพิวเตอร์ไม่สามารถทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ได้หรือไม่?
คำตอบ:
คอมพิวเตอร์เกือบทุกเครื่องสามารถใช้เป็นเซิร์ฟเวอร์ [เว็บ] ได้หากสามารถเชื่อมต่อกับเครือข่ายและสามารถใช้งานซอฟต์แวร์เซิร์ฟเวอร์เว็บได้ เนื่องจากเว็บเซิร์ฟเวอร์นั้นค่อนข้างง่ายและมีเว็บเซิร์ฟเวอร์ฟรีและโอเพ่นซอร์สในทางปฏิบัติอุปกรณ์ใด ๆ สามารถทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ได้
ปัญหาที่ใหญ่กว่าคือด้านเครือข่าย เพื่อให้ระบบทำหน้าที่เป็นเซิร์ฟเวอร์เครื่องอื่น ๆ จะต้องสามารถเข้าถึงได้ หากเป็นเพียงเพื่อใช้ใน LAN ไม่มีข้อกังวล; อย่างไรก็ตามหากมีการใช้งานจากอินเทอร์เน็ตที่กว้างขึ้นข้อมูลจะต้องถูกส่งไปยังมัน สิ่งนี้ต้องการที่อยู่ IP แบบคงที่ที่เชื่อมโยงกับเซิร์ฟเวอร์ (หรือพอร์ตที่ส่งต่อผ่านเราเตอร์) หรือบริการภายนอกซึ่งสามารถแมปชื่อโดเมน / โดเมนย่อยกับที่อยู่ IP แบบไดนามิกที่เปลี่ยนแปลง
(FWIW คุณสามารถซื้อคอมพิวเตอร์ราคา $ 10ซึ่งสามารถทำหน้าที่เป็นเว็บเซิร์ฟเวอร์พื้นฐานได้)
แน่นอนว่าในขณะที่อุปกรณ์ใด ๆ สามารถทำหน้าที่เป็นเว็บเซิร์ฟเวอร์ฟังก์ชันการทำงานของเว็บไซต์อาจแตกต่างกันอย่างมากและอุปกรณ์ราคาถูก (หรือการเชื่อมต่อที่ช้า) อาจไม่สามารถตอบสนองความต้องการได้ทั้งนี้ขึ้นอยู่กับความต้องการของเว็บไซต์
ฉันทราบว่าทุกอย่างที่พูดถึงเกี่ยวกับเว็บเซิร์ฟเวอร์ - แต่สิ่งเดียวกันอาจกล่าวได้ว่าเซิร์ฟเวอร์ประเภทใดก็ได้
มันไม่ยุ่งยากเลย มันขึ้นอยู่กับคำจำกัดความของ "เว็บเซิร์ฟเวอร์" ของคุณ
เป็นไปได้ทั้งหมดที่จะเรียกใช้ "เว็บเซิร์ฟเวอร์" บนอุปกรณ์ที่เรียบง่ายเหมือนไมโครคอนโทรลเลอร์
ลองพิจารณาว่าเว็บเซิร์ฟเวอร์ขั้นต่ำสุดต้องทำอะไรบ้าง มันจะต้องส่งออกข้อความบางอย่าง - ไม่จำเป็นต้องแม้แต่ใน HTML ไปยังลูกค้า มันจะต้องรู้คำขอเป็นคำขอและตอบสนองอย่างเหมาะสม คุณไม่จำเป็นต้องเชื่อมต่อเครือข่ายด้วยซ้ำถ้า "ลูกค้า" ของคุณอยู่ในพื้นที่ มันจะเป็นเว็บเซิร์ฟเวอร์ที่ไม่มีจุดหมายเลย
มันจะเป็นเว็บเซิร์ฟเวอร์ที่เทียบเท่ากับหนึ่งในนั้น
การเพิ่มการเชื่อมต่อเครือข่ายสำหรับไคลเอนต์ (อีเธอร์เน็ตเป็นสิ่งที่ดี แต่ไม่มีเหตุผลทางเทคนิคที่คุณไม่สามารถเชื่อมต่อกับเว็บเซิร์ฟเวอร์ที่ทำงานบน wifi) และความสามารถในการกำหนดเส้นทางจากไคลเอนต์จะดีกว่า
A $ 5 ESP8266 - ไมโครคอนโทรลเลอร์ราคาถูกและ wifi น้อยที่สุดสามารถจัดการสิ่งเหล่านั้นได้มากและอาจเป็นเนื้อหาแบบไดนามิกขั้นพื้นฐานด้วยซ้ำ
ฉันใช้สิ่งนี้เพื่อการแบ่งปันไฟล์อย่างรวดเร็วโดยใช้ Python ยังคงเป็นไปได้ทั้งหมดที่จะเขียนบางสิ่งเช่นนี้ในไมโครคอนโทรลเลอร์หรือแม้แต่เรียกใช้บนโทรศัพท์
เนื้อหาคงน่าเบื่อ เพิ่มภาษาแบบไดนามิกและคุณจะต้องเริ่มคิดถึงระบบน้ำหนักที่หนักขึ้น สิ่งที่รัน Linux หรือ Windows นั้นดี
ณ จุดนี้คุณกำลังพูดถึงเราเตอร์ผู้บริโภคแอปพลิเคชันขนาดเล็กที่ใช้หน้าเว็บที่ UI และทุกสิ่ง
เว็บเซิร์ฟเวอร์ไม่ได้เป็นปัญหาที่ซับซ้อนและสามารถเขียนในห้าบรรทัดทุบตีและทำงานบน Linux ตอนนี้หายนะ ... แต่ทุกระบบที่สามารถเรียกใช้ doom สามารถเรียกใช้เว็บเซิร์ฟเวอร์ได้
การตั้งค่าเว็บเซิร์ฟเวอร์ที่ดีสามารถจัดการกับโหลดได้ค่อนข้างยาก
แท้จริงคอมพิวเตอร์ทุกเครื่องสามารถเป็นเว็บเซิร์ฟเวอร์ได้หากมีสิ่งต่อไปนี้:
แต่มันจะเพียงพอหรือไม่ ตอนนี้เป็นคำถามที่ยุ่งยาก
เพื่อให้คอมพิวเตอร์กลายเป็นเว็บเซิร์ฟเวอร์ที่ให้บริการหน้าเว็บที่ทันสมัยหรือเว็บแอพกับชุมชนทั้งหมด (เช่นโรงเรียน บริษัท พิพิธภัณฑ์):
แต่นั่นเป็นเพียงขั้นต่ำสำหรับการปฏิบัติการขนาดเล็ก เมื่อการดำเนินการของคุณมีขนาดใหญ่ขึ้น (เช่นคุณได้รับปริมาณการใช้งานที่หนักกว่าและให้บริการเว็บแอปที่ซับซ้อนแทนหน้าคงที่) ความต้องการของคุณจะเพิ่มขึ้น ในที่สุดคุณจะต้อง:
ในการใช้ประโยชน์จากโครงสร้างพื้นฐานอินเทอร์เน็ตเพื่อให้บริการทั่วโลกคุณจะต้อง:
หากไม่มีสิ่งเหล่านี้สิ่งที่คุณมีคือเว็บเซิร์ฟเวอร์ที่มีศักยภาพ
มุมมองการเขียนโปรแกรม / ซอฟต์แวร์:
โปรแกรมที่สามารถฟังพอร์ต 80 บนอะแดปเตอร์เครือข่าย ที่ทำงานบนระบบปฏิบัติการที่คุณมี และสามารถประมวลผลคำขอตามข้อกำหนด HTTP
โปรแกรมที่ฟังพอร์ตใด ๆ สามารถเข้าถึงได้จากคอมพิวเตอร์ทุกเครื่องในเครือข่ายเดียวกัน ควรเป็นพอร์ตมาตรฐานที่รู้จัก (80 และ 8080 สำหรับเซิร์ฟเวอร์ HTML เลือกเกิน 1024 สำหรับแอปพลิเคชันที่กำหนดเอง) มันก็เป็นเรื่องธรรมดาที่จะทำการพัฒนาโปรแกรมที่สามารถเข้าถึงเครือข่ายบนคอมพิวเตอร์เครื่องเดียวกับที่คุณกำลังพัฒนา
หากคุณสามารถเข้าถึงได้ผ่าน localhost คุณสามารถเข้าถึงได้จากทุกที่ภายในเครือข่ายเดียวกันและจากที่อื่นจะมีเส้นทางไปยังเครื่องนี้และอะแดปเตอร์เครือข่าย
Caveat: สภาพแวดล้อมการพัฒนาแบบ all-in-one จำนวนมากในการติดตั้งเริ่มต้นจะ จำกัด การเข้าถึง Localhost คุณไม่ต้องการให้เครื่องมือผู้ดูแลระบบของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ตหลังจากทั้งหมด
ฮาร์ดแวร์:
ฮาร์ดแวร์เริ่มต้นที่ไหนสักแห่งที่ "คอมพิวเตอร์ 10 ปีที่รัน XP หรือ Linux" และจบลงที่ "128 core พร้อม 2 TiB RAM และ 256 TiB ของ SSD ในการโจมตี" ด้วย DB ที่ทำงานบนเซิร์ฟเวอร์ที่แตกต่างกันเช่นกัน . แอปพลิเคชันบนเว็บมีแนวโน้มที่จะทำให้เป็นคู่ขนานที่น่าพอใจดังนั้นคุณสามารถ / ต้องเพิ่มมากขึ้นด้วยกลุ่มของเซิร์ฟเวอร์เหล่านั้น และ Geocast และกระจายการออกแบบ และอีกหลายสิ่ง ทั้งหมดขึ้นอยู่กับขนาดที่เรากำลังพูดถึง
เว็บเซิร์ฟเวอร์ที่ง่ายที่สุดที่คุณจะพบคือเราเตอร์ที่คุณใช้งาน btw พวกเขาทั้งหมดเรียกใช้เว็บเซิร์ฟเวอร์เพื่อวัตถุประสงค์ในการกำหนดค่าซึ่งโฮสต์บน Linux (นั่นคือการทำงาน DHCP และ NAT ทั้งหมด)
เครือข่าย:
มีเส้นทางจากเครือข่ายอื่น ๆ - รวมทุกที่บนอินเทอร์เน็ต - ตอนนี้ว่าเป็นเรื่องที่แตกต่างกันโดยสิ้นเชิงและเป็นส่วนหนึ่งได้ยากกว่าการเขียนโปรแกรมแอพลิเคชัน ระหว่าง NAT ของเราเตอร์และผู้ให้บริการระดับ NAT สิ่งนี้กลายเป็นเรื่องยากจริงๆ
หากคุณมีคอมพิวเตอร์ทุกชนิด (PC, แล็ปท็อป, สมาร์ทโฟน, raspberryPI ... ) ที่ติดตั้ง Python เพียงแค่พิมพ์:
$ python -m SimpleHTTPServer
หรือถ้าคุณติดตั้ง Node.js:
$ npm install http-server -g
$ http-server
ขอแสดงความยินดีคุณมีเว็บเซิร์ฟเวอร์!