Ruby on rails 如何将nginx配置为代理到rails应用程序?这样我就不用说domain.com:port了

Ruby on rails 如何将nginx配置为代理到rails应用程序?这样我就不用说domain.com:port了,ruby-on-rails,nginx,deployment,proxy,unicorn,Ruby On Rails,Nginx,Deployment,Proxy,Unicorn,更新:目前我在domain.com:3000访问我的应用程序,但我想访问domain.com查看我的应用程序 我已将nginx设置为80,以在3000代理我的rails应用程序。下面是配置 upstream railsapp { server 127.0.0.1:3000; } server { listen 80; server_name APP; # Tell Nginx and Passenger where your app's 'public' directory

更新:目前我在domain.com:3000访问我的应用程序,但我想访问domain.com查看我的应用程序
我已将nginx设置为80,以在3000代理我的rails应用程序。下面是配置

upstream railsapp {
  server 127.0.0.1:3000;
}

server {
  listen 80;
  server_name APP;

  # Tell Nginx and Passenger where your app's 'public' directory is
  root /var/www/APP/current/public;
  index index.html index.htm;

  # Static assets are served from the mentioned root directory
location / {
    root /var/www/APP/current;
    index index.html index.htm;

    proxy_pass http://railsapp/;
    proxy_redirect off;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    # proxy_set_header X-Real-Port $server_port;
    # proxy_set_header X-Real-Scheme $scheme;
    proxy_set_header X-NginX-Proxy true;
}

  # Turn on Passenger
  passenger_enabled on;
  passenger_ruby /usr/local/rvm/gems/ruby-2.1.3/wrappers/ruby;
}
我提到:

它位于
/etc/nginx/sites enabled/APP.conf
中,并包含在/etc/nginx/nginx.conf中,如下所示
http{…}

include /etc/nginx/sites-enabled/*;
但我的APP.com仍然显示“欢迎使用Ubuntu上的nginx!”APP.com:3000显示我的应用程序。我做错了什么

我正在使用的内容:
Ubuntu 14.04 ec2实例
nginx 1.8.0

unicorn服务器位于3000

您只需添加一个新的服务器{}块并添加passenger_root即可。这就是我所做的。然后在配置后,在浏览器上尝试服务器名称:端口“APP.com:3000”

upstream railsapp {
  server 127.0.0.1:3000;
}

// add new server block here... modify with below example.
server {
    listen *:3000;
    server_name  APP.com;
    rack_env development;
    root /directory/to/rails-app/public;
    index  index.html index.htm index.html.erb;
    passenger_enabled on;
}

server {
  listen 80;
  server_name APP;

  # Tell Nginx and Passenger where your app's 'public' directory is
  root /var/www/APP/current/public;
  index index.html index.htm;

  # Static assets are served from the mentioned root directory
location / {
    root /var/www/APP/current;
    index index.html index.htm;

    proxy_pass http://railsapp/;
    proxy_redirect off;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    # proxy_set_header X-Real-Port $server_port;
    # proxy_set_header X-Real-Scheme $scheme;
    proxy_set_header X-NginX-Proxy true;
}

  # Turn on Passenger
  passenger_enabled on;
  //add passenger_root
  passenger_root /directory/to/phusion_passenger/locations.ini;
  passenger_ruby /usr/local/rvm/gems/ruby-2.1.3/wrappers/ruby;
}

我试图运行unicorn,这样我就可以将我的应用程序转移到多个实例。我想这里的问题是,我将乘客_设置为启用状态,实际上是在3000上运行unicorn

所以我就跑了

passenger start -a 127.0.0.1 -p 3000 -d -e production
我的nginx配置文件是这样的

server {
listen 80;
server_name www.APPNAME.com;

# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/APPNAME/current/public;
index index.html index.htm;

# Static assets are served from the mentioned root directory
location / {
#  root /var/www/APPNAME/current;
#  index index.html index.htm;
proxy_pass http://127.0.0.1:3000;

proxy_redirect off;
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
# proxy_set_header X-Real-Port $server_port;
# proxy_set_header X-Real-Scheme $scheme;
proxy_set_header X-NginX-Proxy true;
}

# Turn on Passenger
passenger_enabled on;
passenger_ruby /usr/local/rvm/gems/ruby-2.1.3/wrappers/ruby;
}

现在一切都好了

删除
上游
服务器信息,然后重新启动nginx。@Emu i对上游进行了评论,并更改了代理程序,重新启动了nginx。仍然没有解决。