我创建了一个 Rails API 项目,它可以在本地运行。 (如果我浏览到 localhost:3000/api/first
,它会在浏览器上打印 true
。
我已按照此处的步骤操作 - https://gorails.com/deploy/ubuntu/14.04并在我的 EC2 Ubuntu 服务器上部署了 API。
如果我的 IP 地址是 - 1.2.3.4,如果我浏览到 http://1.2.3.4/
,我会收到欢迎使用 Nginx 消息。但是,如果我浏览到 http://1.2.3.4/api/first
,我会收到 404 错误。
这是我的/etc/nginx/sites-available/default
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name "";
passenger_enabled on;
rails_env production;
root /home/ubuntu/rails/current/public;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
如果我创建一个名为 api
的文件夹(在 /home/ubuntu/rails/current/public
中),并在其中创建一个名为 first 的文本文件
,然后它会显示文件的内容。
最佳答案
安装 ngnix passenger 模块并添加到 nginx conf 文件的路径。
代码应该是这样的:
server {
listen 80;
server_name "";
# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/app_name/public;
# Turn on Passenger
passenger_enabled on;
passenger_ruby /root/.rvm/gems/ruby-2.2.2/wrappers/ruby;
}
关于ruby-on-rails - Rails API 404 错误 - 使用 Capistrano、Nginx 和 Passenger 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205340/