在 Linux 上搭建 Node.js 服务器的步骤如下:
首先,你需要在你的 Linux 系统上安装 Node.js。你可以使用以下几种方法之一来安装:
对于大多数 Linux 发行版,你可以使用包管理器来安装 Node.js。
Ubuntu/Debian:
sudo apt update
sudo apt install nodejs npm
CentOS/RHEL:
sudo yum install -y nodejs npm
Fedora:
sudo dnf install -y nodejs npm
NodeSource 提供了一个方便的方式来安装特定版本的 Node.js。
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
请将 16.x 替换为你想要的 Node.js 版本。
安装完成后,你可以通过以下命令来验证 Node.js 和 npm 是否正确安装:
node -v
npm -v
创建一个新的目录来存放你的 Node.js 项目,并进入该目录:
mkdir my-node-server
cd my-node-server
使用 npm 初始化一个新的 Node.js 项目:
npm init -y
这将创建一个 package.json 文件,其中包含项目的默认配置。
在项目目录中创建一个名为 server.js 的文件,并添加以下代码来创建一个简单的 HTTP 服务器:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在终端中运行以下命令来启动服务器:
node server.js
你应该会看到输出 Server running at http://127.0.0.1:3000/。
打开浏览器并访问 http://127.0.0.1:3000/,你应该会看到页面上显示 “Hello World”。
如果你希望使用 Nginx 或 Apache 作为反向代理来处理静态文件和 SSL/TLS 终端,可以按照以下步骤进行配置。
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost: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;
}
}
将 yourdomain.com 替换为你的域名,并将配置文件保存到 /etc/nginx/sites-available/yourdomain.com,然后创建符号链接到 /etc/nginx/sites-enabled/:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
最后,重启 Nginx:
sudo systemctl restart nginx
<VirtualHost *:80>
ServerName yourdomain.com
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
将 yourdomain.com 替换为你的域名,并将配置文件保存到 /etc/apache2/sites-available/yourdomain.com.conf,然后启用该站点:
sudo a2ensite yourdomain.com.conf
最后,重启 Apache:
sudo systemctl restart apache2
通过以上步骤,你就可以在 Linux 上成功搭建一个 Node.js 服务器,并可以选择性地使用 Nginx 或 Apache 作为反向代理。