在centOS上配置Nodejs和MongoDB环境

前言

当我们在github上克隆一个用nodejs写的后端应用时、或者是本地的nodejs应用,怎么把它部署到centOS系统(注:很多云主机的系统为centOS的Linux发行版,所以在这里讨论centOS上的配置)上?

部署(centOS)

mongodb

MongoDB 提供了centos yum安装方式,如下:

vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

安装mongodb

yum install -y mongodb-org
mongodb服务使用

#启动
service mongod start
#停止
service mongod stop
#重启
service mongod restart
#增加开机启动
chkconfig mongod on

创建数据库并添加具有数据库读写操作权限的用户

mongod
use yoursdb
db.createUser({user:'name',pwd:'pwd'})
#更改mongodb的登录方式:认证
vi mongodb.conf #在文件中security位置添加如下内容
authorization: enabled

nodejs

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum install -y nodejs
nodejs -v #测试是否安装成功
npm -v #是否有npm
npm install forever -g #安装forever模块(项目后台运行)

项目

cd #cd到合适的目录
git clone -b mongodb https://github.com/someonename/app.git
npm start #启动项目(develop mode)
npm bgstart #启动项目(background mode)
forever list #查看后台运行项目列表

参考链接

<think>好的,用户想要在CentOS 7.9上运行Node.js项目,我得一步步来指导他们。首先,可能需要安装Node.js,CentOS默认的软件库可能版本比较旧,所以得考虑用其他方法,比如NodeSource的仓库。然后,安装npm或者yarn来管理依赖。接着,可能需要安装PM2这样的进程管理工具,保持应用持续运行。用户可能还需要配置防火墙,开放相关端口,比如3000或者用户项目用的端口。另外,可能需要设置反向代理,比如用Nginx,这样可以通过域名访问,或者处理SSL。还要确保项目的依赖都正确安装,比如运行npm install。如果项目有数据库,可能还需要安装配置数据库服务,比如MongoDB或者MySQL。最后,可能需要指导如何启动应用,检查日志,处理常见错误。需要注意CentOS 7.9的兼容性,确认Node.js版本是否支持,避免使用太新的版本导致问题。用户可能不熟悉Linux命令,需要给出具体的命令示例,并解释每个步骤的作用。另外,权限问题也是常见的,比如全局安装可能需要sudo,或者项目目录的权限设置。总之,要详细但清晰地引导用户完成整个流程,确保他们能顺利运行项目。</think>以下是在CentOS 7.9上运行Node.js项目的完整步骤指南: --- ### 一、环境准备 1. **更新系统** ```bash sudo yum update -y ``` 2. **安装开发工具链** ```bash sudo yum groupinstall "Development Tools" -y ``` --- ### 二、安装Node.js 推荐使用NodeSource仓库安装最新LTS版本: 1. **添加NodeSource仓库** ```bash curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - ``` 2. **安装Node.js** ```bash sudo yum install -y nodejs ``` 3. **验证安装** ```bash node -v # 应显示v18.x或更高版本 npm -v ``` --- ### 三、部署Node.js项目 1. **上传项目文件** 使用SFTP/scp或git克隆项目到服务器: ```bash git clone <your_project_repo> cd your-project ``` 2. **安装依赖** ```bash npm install --production # 生产环境建议使用此参数 ``` 3. **配置环境变量** 创建.env文件: ```bash NODE_ENV=production PORT=3000 DATABASE_URL=your_db_connection_string ``` --- ### 四、进程管理(推荐PM2) 1. **全局安装PM2** ```bash sudo npm install pm2@latest -g ``` 2. **启动应用** ```bash pm2 start app.js --name "my-app" ``` 3. **设置开机启动** ```bash pm2 startup pm2 save ``` --- ### 五、网络配置 1. **开放防火墙端口** ```bash sudo firewall-cmd --permanent --add-port=3000/tcp sudo firewall-cmd --reload ``` 2. **配置Nginx反向代理(可选)** ```nginx 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; } } ``` 重启Nginx: ```bash sudo systemctl restart nginx ``` --- ### 六、维护命令 | 操作 | 命令 | |------|------| | 查看实时日志 | `pm2 logs` | | 重启应用 | `pm2 restart my-app` | | 停止应用 | `pm2 stop my-app` | | 查看进程列表 | `pm2 list` | --- ### 常见问题排查 1. **端口冲突**: ```bash netstat -tuln | grep <port> ``` 2. **权限问题**: ```bash sudo chown -R $(whoami):$(whoami) /path/to/project ``` 3. **内存不足**: 使用Node.js内存限制参数: ```bash pm2 start app.js --max-memory-restart 500M ``` --- 建议使用最新LTS版本Node.js以获得更好的安全性性能支持。如果是旧项目,可通过`nvm`管理多版本Node环境: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash nvm install 16 # 示例:安装Node.js 16 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值