将rails应用程序启动到外部IP地址

时间:2016-01-30 10:23:41

标签: ruby-on-rails google-compute-engine puma

我在rails应用程序上有一个ruby,我试图在我的谷歌计算引擎ubuntu 14.04 LTS VM的外部ip上运行它。

我尝试rails server -e production

,输出为:

=> Booting Puma
=> Rails 4.2.4 application starting in production on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma 2.14.0 starting...
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://localhost:3000

我不希望它在那个地方;我希望它可以从服务器的外部IP地址中查看。

问题的一部分是我不知道这是一个rails,一个美洲狮还是谷歌计算引擎问题。

注意:我无法查看它是否实际在localhost:3000上启动,因为VM只是一个终端。

1 个答案:

答案 0 :(得分:0)

(我假设你正在使用nginx,如果没有,apt-get install nginx; service nginx start) 如果可能,请显示您的nginx.conf(/etc/nginx/nginx.conf)和default.conf(/etc/nginx/sites-available/default.conf) 因为你正在使用puma(我也使用它)你应该设置nginx conf文件并将服务器上游设置为等于puma的绑定。

# /etc/nginx/sites-available/default.conf
upstream your_app {
     server 127.0.0.0.1:9292;
}

server {
     listen 80;
     server_name your_domain;
     root /usr/share/nginx/your_app/public;
     # or, if you are using capistrano
     root /usr/share/nginx/your_app/current/public;

     location / {
          proxy_pass http://your_app; # equal to upstream "name"
         ...
     }
     ....
 }

 # config/puma.rb
 [...]
 bind "tcp://127.0.0.1:9292"

执行puma的服务器

$ bundle exec puma RAILS_ENV=production &

执行此步骤后,如果应用程序仍无效,请输出/var/log/nginx/error.log,nginx.conf和default.conf