サーバーとアップロードしたrailsアプリを繋げることが出来たと思ったのですが、エラーが発生して表示されませんでした。
原因が分からずに困っているのですが、調べたところパーミッションやnginxのconfの書き方で下記のエラーになるという事例を見ました。
/home/ユーザー/下にrailsアプリのプロジェクトファイルを入れています。
上記の/home/ユーザー/のパーミッションを701に変更したのですが、こちらはファイルの読み取りとしては不適切なのでしょうか?
またnginxの書き方に/home/ユーザー/プロジェクトと繋げるにはどこか不備が合ったのでしょうか?
server {
server_name ドメイン名 # ドメイン名を記載
root /home/ユーザー/プロジェクト;
location / {
root /home/ユーザー/プロジェクト;
index index.html index.htm;
}
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = ドメイン名) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name ドメイン名;
return 404; # managed by Certbot
}
403 Forbidden
nginx/1.18.0 (Ubuntu)
パーミッション、nginxの設定ミス起因でエラーが発生している可能性は考えられるかと思います。
ざっと調べた限りなので修正されるか定かではありませんが、バックアップを取得したうえでご参考までにご確認ください。
・パーミッション値「701」から「755」に変更してみる。
(701だと他のユーザーやプロセスがファイルを読み取れないため、Webサーバーがアクセスできないかもしれない)
・nginxの設定についてrootディレクティブが「/home/ユーザー/プロジェクト/public」に設定されているか確認する。
(RailsではpublicディレクトリをWebサーバーのドキュメントルートとして指定する必要があるため)
・「location /」の中で再度「root」指定しているようなのでその「root」ディレクティブを削除してみる。
(rootを二重に指定するとリクエストの解決に影響を及ぼすかもしれない)
質問・回答いただきありがとうございました。
■質問者様へ
質問が解決した際には、回答者の方へお礼をお伝えいただくとともに、質問のステータスを「解決済み」に変更してください。