Назад | Перейти на главную страницу

Блок сервера nginx показывает страницу приветствия

Я пытаюсь настроить свое приложение rails на определенный субдомен. Я использую экземпляр ec2 с виртуальной машиной bitnami rubystack. Я разработал приложение, используя его с IP-адресом сервера, поэтому я знаю, что рельсы и приложение работают.

$ {nginx-dir} /conf/nginx.conf

server {
listen       80 default_server;
server_name  _;
server_name_in_redirect off;
proxy_intercept_errors on;
return 401;
}
include "/opt/bitnami/nginx/conf/vhosts/*.conf";

$ {nginx-dir} /conf/vhosts/backend.conf

upstream thin_instances {
   server 0.0.0.0:3000;
   server 0.0.0.0:3001;
   server 0.0.0.0:3002;
   fair;
}
 server {
    # port to listen on. Can also be set to an IP:PORT
    listen 80;
    server_name backend.mydomain.com;
      root /opt/bitnami/projects/myappname/public;
    location / {

      proxy_pass http://thin_instances;
      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;
      if (!-f $request_filename) {
        proxy_pass http://thin_instances;
      break;
      }
     }
}

Это то, что я получаю, когда отправляю сообщение или получаю запрос в домен

<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.2.4</center>
</body>
</html>

Следует помнить о двух вещах:

  1. В server блокировать в nginx.conf заменяет определение вашего настраиваемого сервера, поскольку оно предположительно используется до включения настраиваемых конфигураций (первый раздел сервера, соответствующий заголовку Host, поскольку здесь используется подстановочный знак, будет использоваться конфигурация, если вы не установите server_name ""). поскольку document_root не установлен в блоке сервера по умолчанию, по умолчанию будет что-то вроде /var/www что может быть не тем, что вы хотите.
  2. Имейте в виду, что конфигурация nginx по умолчанию в большинстве дистрибутивов, вероятно, включает все файлы .conf из /etc/nginx/sites-enabled. Вероятно, вы захотите создать символическую ссылку в этом каталоге на файл .conf в /etc/nginx/sites-available. (Если вы удалили все остальное из nginx.conf, например, ваш листинг - это дословно содержимое nginx.conf, вам, вероятно, понадобится что-то вроде include /etc/nginx/sites-enabled/*; в конце.

Я должен отметить, что ответ, предоставленный blackbox222, помог мне определить корень проблемы. Наконец, я сменил своего DNS-провайдера на тот, который действительно мог правильно настроить запись A и не использовать какое-то странное перенаправление.

TL; DR: убедитесь, что ваш DNS настроен правильно