The intern's goal is to transform a blank Linux server into a versatile Production Server, capable of simultaneously running various types of application source code and databases.
Required knowledge to grasp
Linux Administration: Configure Systemd Service, Port Management, Firewall Management (ufw or firewalld).
Web Server Knowledge: Reverse Proxy Concept, Processing Blocks (Block Server/Virtual Host) in Nginx.
Database Knowledge: How to install, grant permissions, and securely open ports for DBMS on Linux.
Implementation sequence
Server Allocation: Go to https://dev.mdcgroup.vn to request 01 server running Ubuntu Server or Rocky Linux.
Install Database Management Systems:
Install PostgreSQL, create user, database, and configure pg_hba.conf to allow remote connections.
Install Microsoft SQL Server on Linux, configure a strong password compliant with Microsoft policies.
Install Application Runtimes:
Install the latest .NET SDK / Runtime version.
Install Node.js (via NVM) and Python (via venv/conda).
Deploy Sample Applications:
Deploy 1 API written in .NET, 1 API written in FastAPI/Flask (Python), and 1 API written in Node.js. Run them as background services (systemd).
Deploy 1 NextJS source code (running SSR) using PM2 for process management.
Configure Nginx as Reverse Proxy: Configure a single Nginx instance to listen on port 80/443, use Domain/Subdomain to accurately route (Proxy pass) to the internal ports of .NET, Node.js, NextJS, and Python.
Security and Optimization: Configure Certbot to automatically issue SSL Let's Encrypt for applications. Enable Firewall to block all DB ports, only open Web ports.
Acceptance of results
Quiz: Take a quiz to test Web Server knowledge on the internal server.
Questions & Suggestions: Propose solutions for CPU/RAM resource management when running too many services on the same OS.
Report Results: Send a summary table of services with corresponding Ports, links to sample websites that are functioning normally to management.
Weekend Discussion: Present on the operating mechanism of Reverse Proxy during the general meeting.