พื้นฐานของการใช้งานเว็บเซิร์ฟเวอร์คืออะไร?


26

นี่คือคำถาม Canonical ที่เสนอเกี่ยวกับการเริ่มต้นการดูแลเซิร์ฟเวอร์

สมมติว่าคุณเป็นผู้เริ่มต้น SysAd เป็นมือใหม่สำหรับ WebOps หรือทีมเล็ก ๆ ที่มีการสนับสนุน SysAd บนเว็บเซิร์ฟเวอร์น้อยหรือไม่มีเลย (และไม่สามารถหาซื้อได้ในตอนนี้) คุณควรทำอะไรเพื่อกำหนดค่าและรักษาความปลอดภัยเว็บเซิร์ฟเวอร์สำหรับธุรกิจของคุณ


คุณพูดถึงประโยชน์ที่ได้รับสองเท่าของการมี sysad ซึ่งบอกเป็นนัยว่าคุณกำลังพูดถึงคนที่ไม่ใช่ sysads แน่นอนว่านี่ทำให้คำถามและคำตอบของคุณอยู่นอกขอบเขตของ Server Fault สำหรับ sysads et al หรือไม่? บางทีผู้ใช้ระดับสูงเป็นบ้านที่ดีกว่าสำหรับสิ่งนี้?
user9517 รองรับ GoFundMonica

8
การอ่านคำถามที่พบบ่อยของฉันถูกตีความว่าเป็น ฉันเคยเห็นคำถามประเภทนี้ถามหลายครั้งจากผู้คนด้านเทคนิค (แต่ไม่ใช่ SysAd) (ส่วนใหญ่เป็นนักพัฒนา) และพวกเขามักจะตอบโต้อย่างรุนแรงแทนที่จะช่วยจริง คำถามนี้ถูกวางไว้ในฐานะผู้สมัครเพื่อเป็นคำตอบที่ยอมรับได้ของสถานที่เริ่มต้นและทำไมพวกเขาควรจ้าง SysAd ช่วยเหลือจริงโดยเร็ว (และหวังว่าจะไม่ต้องตอบคำถามนี้อีกเลย
gWaldo

คำตอบ:


32

ก่อนที่เราจะเริ่ม:

การมีคนคุณภาพจะช่วยให้คุณประหยัดเงิน เช่นเดียวกับการมีทนายความที่ดี (อาจเป็น NSFW สำหรับการสบถ) หรือนักบัญชีการมี SysAd ที่มีคุณภาพอาจช่วยให้คุณประหยัดเงินได้บ่อยครั้งเพียงแค่ช่วยให้คุณหลีกเลี่ยงความผิดพลาดที่มีค่าใช้จ่ายสูง คุณอาจไม่มีเงินที่จะจ่ายสำหรับความเชี่ยวชาญตอนนี้ แต่ทันทีที่คุณสามารถคุณควรทำการลงทุนที่

ไม่มีคำตอบที่ง่ายและแปลกประหลาดสำหรับคำถามนี้ หากคุณเป็นคนหนึ่งที่ถามคำถามนี้คุณต้องตระหนักว่าคำถามนี้เป็นประเด็นสำคัญของสาขาที่ผู้เชี่ยวชาญลงทุนลงทุนเพื่อการศึกษาและฝึกปฏิบัติมาหลายปีคำถามที่คล้ายคลึงกับนักพัฒนาจะเป็น "ฉันจะเขียนแอปพลิเคชันเว็บได้อย่างไร"; แน่นอนว่าเราสามารถพาคุณไปยังเส้นทางเพื่อติดตั้ง Ruby-on-Rails และ RoR "Hello World" แม้ว่ามันจะ 'ตอบคำถาม' แต่มันก็ไม่ได้ช่วยอะไรคุณ คำถาม / คำตอบนี้เป็นความพยายามที่จะช่วยคุณได้จริง

คุณควรจะรุ้:

การจัดการเซิร์ฟเวอร์ของเว็บเป็นหัวข้อที่มีขนาดใหญ่และมีการผสมผสานระหว่างกันกับสาขาวิชาที่แตกต่างกันมากมาย คุณต้องมีความเข้าใจพื้นฐานของ TCP / IP ระบบปฏิบัติการโฮสต์ของคุณแอปพลิเคชันเว็บเซิร์ฟเวอร์ของคุณและความเข้าใจบางอย่างเกี่ยวกับการเรียกใช้สแต็กแอปพลิเคชัน

เตรียมที่จะอ่าน จำนวนมาก

ระบุความต้องการของคุณ:

ความต้องการ

  • คุณใช้งานเว็บไซต์นิ่ง ๆ (อาจมีเอฟเฟกต์ Javascript บางส่วน) หรือ
  • (มีโอกาสมากขึ้น) คุณใช้งานแอปพลิเคชันที่มีเว็บอินเตอร์เฟสหรือไม่
  • คุณมีข้อมูลถาวรหรือไม่? (คุณต้องการฐานข้อมูลหรือไม่)
  • มีข้อมูลผู้ใช้ที่เกี่ยวข้องหรือไม่ มีเหตุผลอื่นที่คุณต้องการเชื่อมต่อระหว่างผู้ใช้และเว็บไซต์เพื่อความปลอดภัยหรือไม่ (SSL)
  • คุณจัดการการชำระเงินทุกประเภทหรือไม่ นอกจากจะมีข้อกำหนด SSL แล้วยังมีข้อควรพิจารณาเพิ่มเติมที่คุณต้องทำการวิจัย (ขึ้นอยู่กับภูมิภาค) สิ่งเหล่านี้จะแตกต่างกันไปขึ้นอยู่กับหน่วยประมวลผลการชำระเงินที่คุณใช้

ระบุสแต็คของคุณ:

คุณจะเขียนและเรียกใช้สิ่งนี้อย่างไร

  • แพลตฟอร์ม (Windows, Linux, Unix อื่น ๆ ฯลฯ )
  • ข้อกำหนดของแอพ (Ruby / Rails, Python, Perl, PHP, .NET, ฯลฯ )
  • ฐานข้อมูล (... )
  • แคช? (สุจริตไม่ต้องกังวลในตอนนี้โปรดทราบว่านี่จะแก้ปัญหาบางอย่างและสามารถสร้างคนอื่น ๆ นี่เป็นปัญหาของประสิทธิภาพการทำงานและตอนนี้คุณแค่พยายามเริ่มต้น)

ตัวเลือกเหล่านี้บางส่วนจะแจ้งให้ผู้อื่นทราบ ตัวอย่างเช่นหากคุณใช้แอพ. NET คุณอาจต้องการใช้ MSSQL และ IIS หากคุณใช้ Ruby on Rails คุณอาจต้องการเซิร์ฟเวอร์ Linux ฯลฯ ...

ทำความรู้จักกับผลิตภัณฑ์ของคุณ:

ตอนนี้คุณได้ตัดสินใจแล้วว่าสแต็คของคุณจะเป็นอย่างไรคุณต้องรู้จักมัน ที่นี่คุณควรใช้เวลาส่วนใหญ่ของคุณ การค้นหา "กำหนดค่า [ผลิตภัณฑ์]" หรือ "[ผลิตภัณฑ์] คู่มือผู้ดูแลระบบ" ควรได้รับทรัพยากรมากมาย

ตัวอย่างเช่นหากคุณใช้ Apache บน Ubuntu คุณควรอ่านอย่าง:

ค้นหาเอกสารบทความบทความบล็อกสำหรับสแต็กของคุณที่คล้ายกัน

ติดตั้งขั้นต่ำเปล่า:

มีโมดูลมากมายสำหรับ Apache แต่ถ้าคุณไม่ได้ใช้ PHP (ตัวอย่าง) อย่าติดตั้ง mod-php

ควรระบุไว้ที่นี่ด้วยเพื่อหลีกเลี่ยงการติดตั้ง GUI หากเป็นเซิร์ฟเวอร์ Linux GUI ใช้ทรัพยากรระบบจำนวนมาก

การรักษาความปลอดภัยเว็บไซต์:

  • ให้แน่ใจว่าสิทธิ์น้อยที่สุดในการทำงาน สิ่งนี้ไม่เพียงใช้กับระบบไฟล์เท่านั้น แต่ยังรวมถึงบริการและกระบวนการด้วย
  • ปิดใช้งานพอร์ตเซิร์ฟเวอร์สำหรับบริการที่ไม่จำเป็น (ติดตั้งขั้นต่ำอีกครั้งเท่านั้น)
  • จำกัด การเชื่อมต่อแอปพลิเคชันกับสภาพแวดล้อมภายใน (ตัวอย่างเช่นหากเรียกใช้เว็บแอปพลิเคชันบนเซิร์ฟเวอร์เดียวกัน (เช่น Rails) ให้ จำกัด เฉพาะฟังโฮสต์ในเครื่องเท่านั้น)

ในการปิด:

นี่เป็นเพียงจุดเริ่มต้นของสิ่งที่คุณควรทำเพื่อให้ไซต์เริ่มทำงาน สิ่งนี้ยังไม่ได้เริ่มที่จะสัมผัสกับปัญหาในการบำรุงรักษาเซิร์ฟเวอร์หรือวิธีการจัดการปัญหาของการปรับขนาด (โครงการของคุณประสบความสำเร็จ) และปัญหาอื่น ๆ อีกมากมายที่ SysAd ที่มีความรู้จะแก้ปัญหาให้คุณ


การรันขั้นต่ำเปล่าเป็นสิ่งสำคัญ แต่อาจไม่ชัดเจนว่าจะถอนการติดตั้ง / ปิดการใช้งาน / ป้องกันอย่างไร เป็นที่ยอมรับหรือไม่ที่จะแนะนำให้เรียกใช้แบร์โบนเครื่องไฟร์วอลล์ที่เปิดเผยต่อสาธารณะโดยสมบูรณ์ที่จะส่งต่อ / ผู้รับมอบฉันทะเฉพาะคำขอไปยังเซิร์ฟเวอร์แอปพลิเคชันที่ทำงานบนเครือข่ายส่วนตัวหรือไม่ มันอาจเป็นไปได้ที่จะแนะนำ distro / config สำหรับสิ่งนั้นเนื่องจากมันไม่จำเป็นต้องเป็นสภาพแวดล้อมเดียวกันกับที่แอพใช้
Carlos Lima

1
เป็นการเริ่มต้นที่ดี สิ่งหนึ่งที่คุณไม่ครอบคลุมคือความสามารถในการทำซ้ำ ในบางจุดคุณจะเติบโตเกินกว่าการตั้งค่าปัจจุบัน เส้นทางของคุณสำหรับการตั้งค่าสภาพแวดล้อมสามารถทำซ้ำได้หรือไม่? ยังดีกว่าพวกเขาเป็นไปโดยอัตโนมัติหรือไม่ คุณกำลังบันทึกแพ็กเกจซอร์สทั้งหมดเพื่อให้คุณสามารถสร้างสภาพแวดล้อมอีกครั้งหรือคุณพึ่งพาที่เก็บข้อมูลภายนอก? คุณจะรู้ได้อย่างไรว่าถึงเวลาอัพเกรดแล้ว คุณกำลังติดตามตัวชี้วัดที่เหมาะสมหรือไม่ คุณรายงานเกี่ยวกับพวกเขาอย่างไร
toppledwagon

@toppledwagon นั่นเป็นจุดที่ดี แต่ฉันพูดถึงหลักสูตร 101 ทุกสิ่งที่คุณพูดถึง (ความสอดคล้อง / กำหนดค่า mgt, สเกล, การตรวจสอบ / การวัด ฯลฯ ) ฉันรู้สึกว่ามาในภายหลัง และโดยสุจริตฉันอยากจะแนะนำให้รับ Systems Pro มากกว่าการเจาะเข้าไปในพื้นที่เหล่านั้น
gWaldo

3
@toppledwagon เมื่อคุณไปถึงจุดนั้นคุณต้องดูแลระบบ หรืออย่างน้อย Sysadmin-as-a-Service
Michael Hampton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.