Open Aseiide opened 2 years ago
["RAILS_SERVE_STATIC_FILES"]
を削除(falseに)
#user nobody;
worker_processes 1;
events { worker_connections 1024; }
http { access_log /opt/homebrew/etc/nginx/access.log; error_log /opt/homebrew/etc/nginx/error.log;
upstream taskleaf {
# 上記で設定したpuma.sockファイルの絶対パスを指定する
server unix:///Users/admin/RubymineProjects/taskleaf/tmp/sockets/puma.sock;
} server {
listen 80;
#ホスト名を指定する
server_name _;
#静的ファイルのパスをドキュメントルートに設定する
root //Users/admin/RubymineProjects/taskleaf/public;
# ドキュメントルート配下を以下の順番で検索する
try_files $uri/index.html $uri.html $uri @taskleaf;
# @appの場合は、以下の設定を読み込ませる
location @taskleaf {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://taskleaf; #upstreamで指定した名前で設定する
}
# エラーページの参照先を設定する
error_page 500 502 503 504 /500.html;
location = /500.html {
root /app/sample-app/public;
}
} }
- nginxを起動した状態で、rails sでpumaをたちあげた後、localhost:80へアクセス(nginx -s reloadで設定ファイルの再読み込みを忘れない)
参考リンク:
https://serip39.hatenablog.com/entry/2020/12/23/235700
https://bootcamp.fjord.jp/reports/13580
https://zenn.dev/machamp/articles/rails-puma-nginx
https://ascii.jp/elem/000/001/415/1415088/
参考リンク: https://heartbeats.jp/hbblog/2012/02/nginx03.html https://qiita.com/furikake6000/items/fb97779659dddfc2c196 https://e-words.jp/w/application-octet-stream.html
環境構築
aptのアップデート sudo apt update sudo apt upgrade
gitインストール sudo apt install git
rbenvインストール git clone https://github.com/rbenv/rbenv.git ~/.rbenv sudo apt install gcc sudo apt install make cd ~/.rbenv && src/configure && make -C src echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc ~/.rbenv/bin/rbenv init echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc source ~/.bashrc curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
ruby-buildインストール git clone https://github.com/rbenv/ruby-build.git PREFIX=/usr/local sudo ./ruby-build/install.sh curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
rubyインストール sudo apt install libssl-dev zlib1g-dev rbenv install 2.7.5
PostgreSQL sudo apt install postgresql psql -U postgres psql# createuser --interactive --password ユーザー名:taskleaf スーパーユーザー:y password:password sudo vim /etc/postgresql/12/main/pg_hba.conf peer認証をmd5認証に sudo systemctl restart postgresqlで設定を再読み込み
nodenv git clone https://github.com/nodenv/nodenv.git ~/.nodenv it clone https://github.com/nodenv/nodenv.git ~/.nodenv cd ~/.nodenv && src/configure && make -C src echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc ~/.nodenv/bin/nodenv init echo 'eval "$(nodenv init -)"' >> ~/.bashrc source ~/.bashrc curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
node-buildインストール git clone https://github.com/nodenv/node-build.git PREFIX=/usr/local sudo ./node-build/install.sh curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
nodeインストール nodenv install 12.22.10 nodenv global 12.22.10
yarnインストール npm install -g yarn
taskleafクローン git clone https://github.com/yatsuhashi168/taskleaf.git git fetch git checkout nginx-version
setup gem install bundler:1.17.3 sudo apt install g++ sudo apt install libpq-dev bin/setup bin/rails db:seed
#user www-data;
worker_processes auto;
pid /run/nginx.pid;
# include /etc/nginx/modules-enabled/*.conf;
events { worker_connections 768;
}
http { include mime.types; default_type application/octet-stream;
upstream taskleaf {
# 上記で設定したpuma.sockファイルの絶対パスを指定する
server unix://home/ubuntu/taskleaf/tmp/sockets/puma.sock;
} server {
listen 80;
#ホスト名を指定する
server_name さくらVPSのホスト名;
#静的ファイルのパスをドキュメントルートに設定する
root /home/ubuntu/taskleaf/public;
# ドキュメントルート配下を以下の順番で検索する
try_files $uri/index.html $uri.html $uri @taskleaf;
# @appの場合は、以下の設定を読み込ませる
location @taskleaf {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://taskleaf; #upstreamで指定した名前で設定する
}
# エラーページの参照先を設定する
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/ubuntu/taskleaf/public;
}
}
# include /etc/nginx/sites-enabled/*;
}
- nginxと連携して起動準備
sudo nginx -t
sudo nginx
(もしsudo nginxでダメだったら↓の3つやる)
sudo chmod ugo+xrw /var/log/nginx/error.log
sudo chmod ugo+xrw /var/log/nginx/access.log
sudo chmod ugo+wrx /run/nginx.pid
vim puma.rb
bind "unix://#{Rails.root}/tmp/sockets/puma.sock"
RAILS_ENV=production bin/rails db:migrate
RAILS_ENV=production bin/rails db:seed
- nginxと連携して起動、確認
bin/rails s -e production
tail -f /var/log/nginx/access.log
Railsアプリをデプロイする
nginxとRailsを連携する
webサーバとアプリケーションサーバの違い
作業メモ
brew install nginx
でnginxをインストールnginx
を実行