บันทึกเทคนิคของ zhaoJian

หลักสูตร IT ระบบคอมพิวเตอร์และเครือข่าย 008_บริการเว็บและการพัฒนาจากระยะไกล

การเรียนรู้ / ระบบคอมพิวเตอร์และเครือข่าย ~5774 คำ · อ่าน 15 นาที - ครั้งที่อ่าน

สภาพแวดล้อมเซิร์ฟเวอร์เว็บ

สภาพแวดล้อมเว็บหมายถึงการรวมกันของฮาร์ดแวร์และซอฟต์แวร์ที่ทำงานบนเซิร์ฟเวอร์เว็บเพื่อโฮสต์และประมวลผลแอปพลิเคชันเว็บ โดยทั่วไปจะรวมถึงระบบปฏิบัติการ ซอฟต์แวร์เซิร์ฟเวอร์เว็บ ระบบฐานข้อมูล ภาษาโปรแกรมมิ่ง และเครื่องมืออื่นๆ ที่เกี่ยวข้อง

ระบบปฏิบัติการ:

  • Linux: สภาพแวดล้อมเซิร์ฟเวอร์เว็บจำนวนมากเลือก Linux เป็นระบบปฏิบัติการเพราะมันมีเสถียรภาพ เชื่อถือได้ และเป็นโอเพนซอร์ส การแจกแจง Linux ทั่วไป ได้แก่ Ubuntu, CentOS, Debian ฯลฯ
  • Windows Server: สำหรับสภาพแวดล้อมองค์กรเฉพาะบางอย่าง Windows Server ก็เป็นตัวเลือกที่พบบ่อยเช่นกัน

ซอฟต์แวร์เซิร์ฟเวอร์เว็บ:

  • Apache: โอเพนซอร์ส ใช้กันอย่างแพร่หลาย รองรับแพลตฟอร์มหลายแพลตฟอร์ม เหมาะสำหรับแอปพลิเคชันเว็บต่างๆ

  • Nginx: เบา สมรรถนะสูง เหมาะสำหรับการจัดการเนื้อหาคงที่และความเว้นที่สูง

  • IIS (Microsoft Internet Information Services): เซิร์ฟเวอร์เว็บที่เป็นทางการในสภาพแวดล้อม Windows รองรับ ASP.NET และเทคโนโลยี Microsoft อื่นๆ

  • LiteSpeed: สมรรถนะสูง การใช้ทรัพยากรต่ำ เข้ากันได้กับ Apache สามารถใช้เป็นทดแทนได้

  • OpenResty: แพลตฟอร์มเว็บสมรรถนะสูงที่ใช้ Nginx และ Lua ซึ่งรวมฟังก์ชันหลักของ Nginx เข้ากับความสามารถในการเขียนโปรแกรมแบบไดนามิกของ Lua เพื่อสร้างแอปพลิเคชันเว็บและเว็บไซต์ที่มีประสิทธิภาพและยืดหยุ่นมากขึ้น

  • Tomcat: ซอฟต์แวร์เซิร์ฟเวอร์เว็บโอเพนซอร์สที่ให้การรองรับ Java Servlets และ JSP ไม่ใช่เซิร์ฟเวอร์เว็บที่สมบูรณ์ แต่ต้องใช้กับเซิร์ฟเวอร์เว็บอื่นๆ เช่น Apache หรือ Nginx

ระบบฐานข้อมูล:

  • MySQL: โอเพนซอร์ส เบา เหมาะสำหรับแอปพลิเคชันเว็บส่วนใหญ่
  • PostgreSQL: ทรงพลัง รองรับคุณสมบัติขั้นสูง เหมาะสำหรับความต้องการข้อมูลที่ซับซ้อน
  • MongoDB: ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ เหมาะสำหรับการจัดการข้อมูลที่คล้ายเอกสารในปริมาณมาก
  • Microsoft SQL Server: ระบบฐานข้อมูลเชิงสัมพันธ์ของ Microsoft

ภาษาโปรแกรมมิ่งและเฟรมเวิร์ก:

  • PHP: ใช้กันทั่วไปเพื่อสร้างแอปพลิเคชันเว็บแบบไดนามิก ใช้กับ Apache และ Nginx, Laravel, thinkphp
  • Python: ด้วยเฟรมเวิร์กเช่น Django และ Flask เหมาะสำหรับการพัฒนาเว็บและวิทยาศาสตร์ข้อมูล
  • Ruby: ด้วยเฟรมเวิร์ก Ruby on Rails เหมาะสำหรับการพัฒนาอย่างรวดเร็ว
  • JavaScript: การพัฒนาฝั่งหน้าและฝั่งหลัง React.js, Angular, Vue.js, Node.js
  • C#: ภาษาเชิงวัตถุ พิมพ์อย่างมาก คอมไพล์ เหมาะสำหรับสร้างแอปพลิเคชันเว็บระดับองค์กร ASP.NET
  • Java: ภาษาวัตถุประสงค์ทั่วไป เหมาะสำหรับแอปพลิเคชันประเภทต่างๆ รวมถึงแอปพลิเคชันเว็บ Spring
  • Go: ภาษาคอมไพล์ที่พิมพ์อย่างเข้มข้นแบบสถิต พร้อมเวลา เหมาะสำหรับสร้างแอปพลิเคชันเว็บสมรรถนะสูงและขยายได้ Echo

คอนเทนเนอร์ไรเซชันและเวอร์จวอลไลเซชัน:

  • Docker: ให้วิธีแก้ปัญหาการคอนเทนเนอร์ไรเซชัน ลดความซับซ้อนในการปรับใช้และการจัดการ
  • Kubernetes: ระบบการประสานการทำงานของคอนเทนเนอร์ที่ขยายได้สูง เหมาะสำหรับการปรับใช้คอนเทนเนอร์ขนาดใหญ่

HelloGitHub | การจัดอันดับเซิร์ฟเวอร์

LAMP/LNMP/WAMP/WNMP

Stackระบบปฏิบัติการเซิร์ฟเวอร์เว็บฐานข้อมูลภาษาโปรแกรมมิ่งฝั่งเซิร์ฟเวอร์
LAMPLinuxApacheMySQLPHP/Perl/Python
LNMPLinuxNginxMySQL/MariaDBPHP/Perl/Python
WAMPWindowsApacheMySQL/MariaDBPHP/Perl/Python
WNMPWindowsNginxMySQL/MariaDBPHP/Perl/Python

การพัฒนาจากระยะไกล

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

  • การควบคุมเวอร์ชันจากระยะไกล (Remote Version Control): Git, SVN. ช่วยให้นักพัฒนาสามารถเขียนโค้ดในเครื่อง แต่การควบคุมเวอร์ชันและการทำงานร่วมกันของโค้ดนั้นดำเนินการในที่เก็บข้อมูลระยะไกล สิ่งนี้ช่วยอำนวยความสะดวกในการทำงานร่วมกันของทีมและการจัดการโค้ดอย่างปลอดภัย

  • สภาพแวดล้อมการพัฒนาจากระยะไกล (Remote Development Environment): Remote - SSH, Plugin Remote Development ของ VS Code เป็นต้น การพัฒนาจากระยะไกลของ WebStorm ช่วยให้นักพัฒนาสามารถใช้สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ในเครื่อง แต่การดำเนินการและการดีบักโค้ดจริงนั้นดำเนินการบนเซิร์ฟเวอร์ระยะไกล สิ่งนี้ช่วยให้มั่นใจได้ว่าสภาพแวดล้อมในเครื่องและระยะไกลสอดคล้องกัน ลดปัญหาที่เกิดจากสภาพแวดล้อมที่แตกต่างกัน

  • เซิร์ฟเวอร์ระยะไกล (Remote Servers): SSH, FTP, SCP เป็นต้น นักพัฒนาสามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล เรียกใช้คำสั่งโดยตรงบนเซิร์ฟเวอร์ แก้ไขไฟล์ เป็นต้น สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับโครงการที่ต้องพัฒนาและทดสอบในสภาพแวดล้อมเฉพาะ

  • การดีบักจากระยะไกล (Remote Debugging): Visual Studio Code, WebStorm และคนอื่นๆ ให้ฟังก์ชันการดีบักจากระยะไกล ช่วยให้นักพัฒนาสามารถดีบักโค้ดในส่วน IDE ในเครื่องของพวกเขา แต่การดำเนินการดีบักจริงนั้นดำเนินการบนเซิร์ฟเวอร์ระยะไกล สิ่งนี้ช่วยแก้ไขปัญหาที่เกิดขึ้นในสภาพแวดล้อมที่แตกต่างกัน

  • การพัฒนาคลาวด์ (Cloud Development): AWS Cloud9, Microsoft Azure Dev Spaces, Google Cloud Shell ฯลฯ ให้สภาพแวดล้อมการพัฒนาบนคลาวด์ที่ช่วยให้นักพัฒนาสามารถพัฒนา สร้าง และทดสอบบนคลาวด์ สิ่งนี้ช่วยลดความกดดันต่อทรัพยากรคอมพิวเตอร์ในเครื่องและปรับปรุงความยืดหยุ่น

  • การพัฒนาแบบคอนเทนเนอร์ (Containerized Development): Docker, Kubernetes, VM. การห่อหุ้มแอปพลิเคชันและการอ้างอิงทั้งหมดในคอนเทนเนอร์ที่สามารถย้ายได้อย่างง่ายดายระหว่างสภาพแวดล้อมการพัฒนาในเครื่องและเซิร์ฟเวอร์ระยะไกล


ลิงค์:

1Panel 宝塔 WDCP PHPStudy XAMPP OneinStack (Linux) UPUPW (Windows) phpEnv、PHPTS、LNMP……

Visual Studio Code

ปลั๊กอิน VS Code: Remote - SSH Remote Development

Google Chrome เว็บเบราว์เซอร์ Google Chrome เว็บเบราว์เซอร์ (จีน)

Microsoft Edge

แชร์:

ความคิดเห็น