在Ubuntu系統上部署Node.js項目可以通過多種方式進行,以下是詳細的步驟指南:
mkdir my-node-app
cd my-node-app
npm init -y
npm install express
app.js文件,并添加以下簡單的Node.js代碼:const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, Docker!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
Dockerfile的文件,并添加以下內容:# 使用官方的Node.js運行時作為基礎鏡像
FROM node:14
# 創建應用目錄
WORKDIR /usr/src/app
# 安裝應用依賴
COPY package*.json ./
RUN npm install
# 復制應用代碼
COPY . .
# 對外暴露端口
EXPOSE 3000
# 啟動應用
CMD ["node", "app.js"]
docker build -t my-node-app .
docker run -p 3000:3000 my-node-app
sudo apt update
sudo apt upgrade
sudo apt install nodejs npm
node -v
npm -v
mkdir my-node-app
cd my-node-app
npm init -y
npm install express
server.js):const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
sudo npm install -g pm2
pm2 start server.js
pm2 startup
pm2 status
sudo apt install nginx
sudo nano /etc/nginx/sites-available/default
在配置文件中添加以下內容:server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host host;
proxy_cache_bypass http_upgrade;
}
}
sudo systemctl restart nginx
sudo ufw allow 'Nginx Full'
通過以上步驟,你可以在Ubuntu上成功部署你的Node.js項目。根據你的具體需求,可能還需要進行其他配置和優化。