Я пытаюсь настроить свое приложение 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>
Следует помнить о двух вещах:
server
блокировать в nginx.conf
заменяет определение вашего настраиваемого сервера, поскольку оно предположительно используется до включения настраиваемых конфигураций (первый раздел сервера, соответствующий заголовку Host, поскольку здесь используется подстановочный знак, будет использоваться конфигурация, если вы не установите server_name ""
). поскольку document_root
не установлен в блоке сервера по умолчанию, по умолчанию будет что-то вроде /var/www
что может быть не тем, что вы хотите./etc/nginx/sites-enabled
. Вероятно, вы захотите создать символическую ссылку в этом каталоге на файл .conf в /etc/nginx/sites-available
. (Если вы удалили все остальное из nginx.conf, например, ваш листинг - это дословно содержимое nginx.conf, вам, вероятно, понадобится что-то вроде include /etc/nginx/sites-enabled/*;
в конце.Я должен отметить, что ответ, предоставленный blackbox222, помог мне определить корень проблемы. Наконец, я сменил своего DNS-провайдера на тот, который действительно мог правильно настроить запись A и не использовать какое-то странное перенаправление.
TL; DR: убедитесь, что ваш DNS настроен правильно