我在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只是一个终端。
答案 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