代码之家  ›  专栏  ›  技术社区  ›  narzero

Nginx不适用于Sinatra JSON路由

  •  0
  • narzero  · 技术社区  · 7 年前

    我已经用Nginx 1.12.1安装了一个Ubuntu 16.04服务器,并安装和配置了Phusion Passenger 5.1.8(开源)以正常工作。

    我已经用 passenger-ruby-sinatra-demo

    我已经设置了 root var到 /views 回购协议文件夹 /etc/nginx/sites-available/default

    root /var/www/passenger-ruby-sinatra-demo/views;
    

    /视图 index.erb .

    app.rb 文件:

    require 'sinatra/base'
    require 'json'
    
    class ExampleApp < Sinatra::Base
      get '/' do
        erb :index
      end
    
      get '/hello' do
        content_type 'application/json'
    
        {'message'=>'hello world!'}.to_json
      end
    end
    

    所以现在来参观的时候 / /hello 我有一个404屏幕。

    更新: hello 进入 views

    1 回复  |  直到 7 年前
        1
  •  0
  •   narzero    7 年前

    通过将以下内容添加到我的 /etc/nginx/sites-available/default server

    ...
    
    location / {
        try_files $uri @app;
    }
    
    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }
    
    ...
    

    我删除了:

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
    

    这是一个与上面删除的代码相关的Nginx配置问题。