Node.js Deployment
PM2, EK, PROCESS, MANAGER, hai — APP, ko, BACKGROUND, mein, RUN, karta hai, CRASH, hone, PAR, AUTOMATICALLY, RESTART, karta hai, aur, LOGS, MANAGE, karta hai. pm2 start app.js --watch, FILE, CHANGES, PAR, AUTO-RESTART, bhi, kar, sakta hai.
Docker, APP, ko, EK, CONTAINER, mein, PACKAGE, karta hai, apni, SAARI, DEPENDENCIES, ke, saath — "IT, WORKS, ON, MY, MACHINE" PROBLEM, SOLVE, karta hai, kyunki, CONTAINER, HAR, ENVIRONMENT, mein, SAME, TAREEKE, SE, RUN, hota hai.
// Dockerfile:
// FROM node:20-alpine
// WORKDIR /app
// COPY package*.json ./
// RUN npm ci --production
// COPY . .
// EXPOSE 3000
// CMD ["node", "server.js"]
// PM2 (ecosystem.config.js):
module.exports = {
apps: [{
name: "my-app",
script: "server.js",
instances: "max", // CPU cores, ke, hisaab, se
exec_mode: "cluster",
}],
};- PM2 = process manager — auto-restart, cluster mode, logs
- Docker = app, ko, dependencies, ke, saath, container, mein, PACKAGE, karta hai
- npm ci, CI/CD, mein, PREFERRED — exact, lockfile, versions, INSTALL, karta hai
/health, EK, SIMPLE, ENDPOINT, hai, JO, LOAD, BALANCERS, aur, ORCHESTRATION, TOOLS, (Kubernetes) USE, karte, HAIN, YE, VERIFY, karne, ke, liye, ki, APP, RUNNING, hai, aur, TRAFFIC, HANDLE, karne, ke, liye, READY, hai.
app.get("/health", (req, res) => {
res.status(200).json({ status: "ok", uptime: process.uptime() });
});SIGTERM, SIGNAL, RECEIVE, hone, PAR, (jaise, Kubernetes, POD, TERMINATE, karte, waqt, BHEJTA, hai) SERVER, ko, NAYE, CONNECTIONS, ACCEPT, karna, BAND, karna, CHAHIYE, aur, EXISTING, REQUESTS, ko, COMPLETE, hone, ka, TIME, DENA, CHAHIYE, PEHLE, EXIT, karne, se.
process.on("SIGTERM", () => {
server.close(() => {
console.log("Server closed gracefully");
process.exit(0);
});
});