У меня новая работа, и у них все настроено на AWS. У нас есть тестовый сервер, на котором размещено несколько приложений.
если я пойду в
jenkins.example.com
он переходит к запущенному у нас экземпляру Jenkins.
если я пойду в
server.test.example.com
Затем он переходит к тестовой версии нашего приложения.
Где это настраивается (разные приложения для разных "поддоменов")? В Nginx или в записях DNS? Или и там, и там или где-то еще?
(Я не на 100% уверен в терминах, которые следует использовать, задавая этот вопрос, например, «поддомены», не стесняйтесь, скажите мне, что это такое).
решение1
Это зависит от того, что вы хотите сделать.
То, о чем вы спрашиваете, скорее всего, требует Nginx, а не дополнительных записей DNS.
Записи DNS CNAME могут перенаправлять определенные поддомены на определенный домен (но не напрямую на определенный IP-адрес или порт на сервере). CNAME нужен только в том случае, если вы сопоставляете поддомен, перенаправляющий запрос на другое доменное имя (например, subdomain.exampleone.com ссылается на exampletwo.com).
Nginx может выступать в качестве обратного прокси-сервера, беря поддомены и перенаправляя их либо в определенную папку/файлы, либо в порт на вашем сервере. Это настраивается либо из вашего /etc/nginx/nginx.conf
*, внутри http {...}
блока, либо в /etc/nginx/sites-enabled/
каталоге, где вы можете создать отдельный файл для каждого перенаправления (где http {...}
подразумевается).
*или там, где находится ваш каталог nginx
Правильный формат для такого перенаправления (к приложению на определенном порту) в вашем случае /etc/nginx/nginx.conf
выглядит следующим образом:
server {
# whether you type localhost or 127.0.0.1 or something else here
# depends on your servers /etc/hosts file, where you define how
# the server refers to itself
listen localhost:80;
server_name mysubdomain.example.com;
location / {
proxy_pass http://localhost:MYPORTNUMBER
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Где вы заменяете MYPORTNUMBER на порт, на котором запущено приложение. Процесс перенаправления на статические файлы аналогичен, но вместо proxy_pass вы бы сделали root /path/to/desired/folder
.
Я специально не пробовал, но это должно работать для многоуровневых поддоменов, как server.test.ourdomain.com
в вашем примере.