在ubuntu上重新启动nginx失败

时间:2016-02-15 14:27:59

标签: ruby-on-rails-4 nginx ubuntu-14.04

嘿,我目前正在ubuntu 14服务器上部署我的rails应用程序,当我尝试重新启动nginx时,它失败了。

我的nginx.conf看起来像这样:

upstream puma {
  server unix:///home/deploy/apps/savoir/shared/tmp/sockets/savoir-puma.sock;
}

server {
  listen 80 default_server deferred;
  # server_name example.com;

  root /home/deploy/apps/savoir/current/public;
  access_log /home/deploy/apps/savoir/current/log/nginx.access.log;
  error_log /home/deploy/apps/savoir/current/log/nginx.error.log info;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @puma;
  location @puma {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://puma;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 10M;
  keepalive_timeout 10;
}

如果我用这个命令测试配置:

sudo nginx -c /etc/nginx/nginx.conf -t

它告诉我我的语法没问题。

为什么会失败?

编辑:

error.log看起来像这样:

2016/02/15 14:17:59 [emerg] 57516#0: bind() to 0.0.0.0:80 failed (98: Address already in use)

使用deploy而不是info我收到相同的错误消息:

2016/02/16 13:20:35 [emerg] 365#0: bind() to 0.0.0.0:80 failed (98: Address already in use)

EDIT2:

我刚刚意识到我的conf放在/ etc / nginx / sites-enabled /下面并被称为" savoir" (这是我申请的名称)。也许这是一个错误?我遵循了guide

EDIT3:

好的,我在nginx.conf中更改了端口,现在可以正常工作了:

server {
  listen 81 default_server deferred;
}

但是仍然无法在网络浏览器中看到我的Rails应用程序。

EDIT4:

卸载apache2并将端口更改回80.现在无需更改端口即可正常工作。

EDIT5:

我非常接近在线申请,但还有最后一个问题。我在puma.access.log

中发现了此错误
Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>

我认为capistrano在部署时添加了这个但不知道它没有:

// /config/secrets.yml
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

使用此命令检查密钥env | grep -E "SECRET_TOKEN|SECRET_KEY_BASE" doensn不返回任何内容。

我尝试手动设置它,但这并没有真正起作用。有人能给我一个简短的解释如何设置它最好吗?

0 个答案:

没有答案