本文将介绍如何使用 Linux 服务器、pm2 和 nginx 来搭建一个基于 Node.js 的网站。我们将通过上传文件、运行 Node 项目、放行端口、DNS 域名解析和 Nginx 域名代理等步骤来实现这一目标。
使用 node 快速编写一个 web 服务器
const express = require("express");
const app = express();
const port = 5000;
app.get("/", (_, res) => {
res.send("Hello World!");
});
app.listen(port, () => {
console.log(`The service runs on port ${port}`);
});
将文件上传到 Linux 服务器
接下来,我们将文件上传到 Linux 服务器。使用 scp 命令(如果有多个文件需要上传,则空格即可),您可以将文件从本地计算机传输到远程服务器。例如,以下命令将 main.js 文件上传到服务器的 /var/www 目录中。
# scp yourFile yourname@ip folder
scp main.js [email protected]:/var/www
# 如果配置了ssh,那么可以使用别名替代用户名和ip地址
scp main.js musk:/var/www/
使用 pm2 运行 node 项目
# 启动项目
pm2 start main.js --name node
# 查看本地运行的进程
pm2 ls
# 根据其id删除进程
pm2 del id
# 删除全部
pm2 del all
放行服务器端口
此时项目已经正常运行起来,但是由于端口没有放行,网站在外部访问不到的。
#放行端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
#重启防火墙
firewall-cmd --reload
顺便补充点其他命令
#查看开放的端口列表
firewall-cmd --zone=public --list-ports
#关闭端口
firewall-cmd --zone=public --remove-port=5000/tcp --permanent
这样在浏览器访问你的服务器 ip+端口号就可以看到内容了。
DNS 域名解析
如果想通过域名访问应用程序,则进行 DNS 域名解析。打开域名控制面板,并添加一个 A 记录。名称应为你想要的域名前缀,IP 地址应为服务器 IP 地址。等待 DNS 解析完成。
nginx 域名代理
回到服务器找到 /usr/local/nginx/conf/nginx.conf 文件 添加以下配置,不需要去启动一个新的 web 服务,只需要去监听即可。
server {
listen 80;
server_name your domain;
location / {
proxy_pass http://127.0.0.1:5000;
}
}
保存文件,然后重启 nginx
nginx -s relaod
打开浏览器访问域名即可看到网站生效。