在 Ubuntu 系统上,将 Node.js 应用程序与 Nginx 配合使用是一种常见的部署策略。Nginx 可以作为反向代理服务器,处理来自客户端的请求并将其转发到 Node.js 应用程序。以下是详细的步骤指南:
首先,确保你的 Ubuntu 系统上已经安装了 Node.js。你可以使用以下命令来安装:
sudo apt update
sudo apt install nodejs npm
接下来,安装 Nginx:
sudo apt update
sudo apt install nginx
编辑 Nginx 的配置文件,通常位于 /etc/nginx/sites-available/default。你可以创建一个新的配置文件或修改默认文件。
sudo nano /etc/nginx/sites-available/default
在配置文件中,添加以下内容:
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或 IP 地址
location / {
proxy_pass http://localhost:3000; # 替换为你的 Node.js 应用程序的端口
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 ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
测试 Nginx 配置是否正确:
sudo nginx -t
如果没有错误,重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
确保你的 Node.js 应用程序正在运行。你可以使用 pm2 来管理 Node.js 进程,以确保它始终运行:
sudo npm install pm2 -g
pm2 start app.js # 替换为你的应用程序入口文件
打开浏览器并访问你的域名或 IP 地址。你应该能够看到你的 Node.js 应用程序的响应。
如果你使用的是 UFW(Uncomplicated Firewall),确保允许 HTTP 和 HTTPS 流量:
sudo ufw allow 'Nginx Full'
为了提高安全性,你可以为你的网站配置 SSL 证书。可以使用 Let’s Encrypt 提供的免费证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com # 替换为你的域名
按照提示完成 SSL 配置。
通过以上步骤,你就可以在 Ubuntu 系统上成功地将 Node.js 应用程序与 Nginx 配合使用了。