在Linux系统上搭建Ruby服务器
一、安装和配置Nginx
安装Nginx
需要确保系统已经安装了必要的依赖项,在基于Debian的系统(如Ubuntu)上,可以使用以下命令:
sudo apt-get update sudo apt-get install -y build-essential libssl-dev libreadline-dev zlib1g-dev
在基于Red Hat的系统(如CentOS)上,可以使用以下命令:
sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel readline-devel zlib-devel
使用以下命令安装Nginx:
sudo apt install nginx
启动Nginx并设置开机自启
sudo systemctl start nginx sudo systemctl enable nginx
可以通过以下命令检查Nginx是否成功启动:
sudo systemctl status nginx
二、安装和配置Ruby环境
安装rbenv
rbenv
是一个用于管理多个 Ruby 版本的工具,首先克隆rbenv
仓库并将其添加到你的PATH
中:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc
安装ruby-build插件
ruby-build
是rbenv
的一个插件,用于安装不同版本的 Ruby,克隆ruby-build
仓库并将其添加到rbenv
的插件目录中:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
安装特定版本的Ruby
列出可用的 Ruby 版本:
rbenv install -l
选择一个版本进行安装,
rbenv install 2.7.2
将安装的 Ruby 版本设置为全局默认版本:
rbenv global 2.7.2
或者为特定项目设置局部版本:
cd /path/to/your/project rbenv local 2.7.2
安装Bundler
Bundler 是 Ruby 的依赖管理工具,使用以下命令安装 Bundler:
gem install bundler
三、配置Web服务器以运行Ruby on Rails应用
生成模型和迁移数据库
假设你已经有一个 Rails 项目,首先生成一个模型:
rails generate model Post title:string body:text
然后迁移数据库:
rake db:migrate
生成控制器
生成处理文章请求的控制器:
rails generate controller Posts index new create show edit update destroy
配置Nginx虚拟主机
添加 Nginx 虚拟主机配置文件,例如/etc/nginx/sites-available/default
:
server { listen 80; server_name your_domain_or_ip; root /path/to/your/rails/public; location / { proxy_pass http://unicorn_server; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ~ ^/(assets)/ { expires max; add_header Cache-Control public; } }
配置Unicorn
创建 Unicorn 配置文件,例如config/unicorn.rb
:
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 2) working_directory "/path/to/your/rails" listen "/tmp/unicorn.sock", :backlog => 64 pid "/path/to/your/rails/tmp/pids/unicorn.pid" stderr_path "/path/to/your/rails/log/unicorn.stderr.log" stdout_path "/path/to/your/rails/log/unicorn.stdout.log" before_exec do |server| ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__) ENV["RAILS_ENV"] = 'production' end
运行生产环境
启动 Unicorn 生产环境:
unicorn -c config/unicorn.rb -E production -D
四、常见问题解答(FAQs)
如何在Nginx中配置反向代理?
在Nginx配置文件中使用proxy_pass
指令来设置反向代理。
location / { proxy_pass http://unicorn_server; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
这个配置将所有进入/
的请求转发到 Unicorn 服务器。
如何更改Ruby版本?
使用rbenv
可以轻松更改 Ruby 版本,首先列出已安装的版本:
rbenv versions
然后使用rbenv local
或rbenv global
命令设置新的 Ruby 版本。
rbenv local 3.0.0 # for specific project directory rbenv global 3.0.0 # for all projects globally
小伙伴们,上文介绍了“ruby服务器搭建”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1282133.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复