Rails项目的环境搭建
1 背景
本次操作系统为CentOS 7.9,用于新部署一个Rails项目的运行环境,其中包括ruby环境和前端的node环境。
Ruby: 2.5.1
Rails: 6.0.2
node: 12.14.0
2 部署
2.1 Ruby环境搭建
刚开始直接使用 yum install ruby -v 2.5.1 安装ruby,但是提示提示没有可用的包。因此使用rbenv来进行ruby的安装和版本管理。
# 安装rbenv
# 2024.1.8最新安装脚本一键安装/卸载
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/rbenv-cn/raw/main/tools/install.sh)"
# 使用rbenv安装ruby2.5.1
rbenv cninstall 2.5.1
# 设置全局使用 2.5.1版本
rbenv global 2.5.1
# 查看可安装的ruby版本
rbenv cninstall -l
rbenv cninstall -L
# 查看已安装的ruby版本
rbenv versions
# 安装rails 6.0.2
gem install rails –v 6.0.2
# bundler gem 安装
gem install bundler -v 2.3.26
# 进入项目根目录,执行bundle install
bundle install
#如果一键安装脚本失效,去下面链接重新查看或者在gitee上搜索rbenv重新查找
#参考链接:https://gitee.com/RubyMetric/rbenv-cn?_from=gitee_search
后端项目运行:
在生产环境下使用 Puma 启动命令,设置 4 个 worker,每个 worker 内的线程数在 16 到 20 之间,并且以后台方式启动,监听端口号为 3003,可以使用以下命令:
RAILS_ENV=production bundle exec puma -w 4 -t 16:20 -d -p 3003
#或
RAILS_ENV=production bundle exec rails s -b 0.0.0.0 -p 3003
生产模式下运行项目前可能还需要运行 webpack install
2.2 Node环境搭建
直接安装node的也是安装失败,因此使用nvm进行node的安装和版本管理。
安装nvm时,可以使用脚本实现nvm的一键安装。
# 安装
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"
# 如果一键安装脚本失效,去下面链接重新查看或者在gitee上搜索nvm重新查找
#参考链接:https://gitee.com/RubyMetric/nvm-cn?_from=gitee_search
# 查看nvm的版本
# nvm -v
# 查看已安装的node版本
nvm -l
# 使用nvm安装node 12.14.0
nvm install 12.14.0
# 安装yarn包管理器
npm install -g yarn
# 编译
# 进入项目的根目录,执行yarn安装相关包
yarn
# 编译
RAILS_ENV=production bundle exec rake assets:precompile
# 编译之后的文件会存在 项目根目录下的 ./public/ 下
3 Nginx配置
使用Nginx作为反向代理服务器,将HTTP请求转发到Rails应用的后端服务器(如Puma或Unicorn)。
修改nginx配置
server {
listen 80;
server_name example.com www.example.com;
root /path/to/your/rails/app/public; # 设置您Rails项目的public目录路径
location / {
proxy_pass http://127.0.0.1:3000; # 将请求代理到Rails后端服务器
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置修改根据项目的实际情况修改。
# 检查Nginx配置是否正确
sudo nginx -t
# 重启nginx以使配置生效
sudo systemctl reload nginx.service