У меня есть приложение Rails, работающее на AWS OpsWorks Nginx/Unicorn Rails Layer. Я хочу, чтобы мое приложение обрабатывало запросы только на api.mydomain.com, и мой веб-сервер напрямую возвращает 404, если какой-либо запрос выполняется с использованием IP-адреса сервера.Отключить доступ к сети через прямой IP-адрес на сервере AWS OpsWorks Nginx/Unicorn
Я внедрил пользовательскую поваренную книгу, которая переопределяет единорог/шаблоны/default/nginx_unicorn_web_app.erb (из репозитория opsworks-cookbooks: https://github.com/aws/opsworks-cookbooks). Я скопировал файл шаблона, который существует в этом хранилище и добавлен новый блок сервера в верхней части шаблона:
server { listen 80; server_name <%= @instance[:ip] %>; return 404; }
я остановился и начал свой сервер, чтобы убедиться, что настроенный файл шаблона привыкает, но когда Я выдаю запрос с использованием IP-адреса сервера, который по-прежнему перенаправляется в мое приложение Rails.
Это <% = @instance [: ip]%> Неправильно? Есть ли способ войти в этот шаблонный файл, чтобы я мог легче отлаживать то, что происходит неправильно? Я пробовал использовать Chef :: Log.info, но мое сообщение, похоже, не регистрировалось.
Спасибо!
Редактировать: Для всех, у кого есть эта проблема ... Ответ ниже о настройке блока сервера по умолчанию зафиксировал одну из моих проблем. Моя другая проблема была связана с тем, что мои обновления поваренной книги даже не пробивались к моему экземпляру, и мне необходимо вручную обновить кеш поваренной книги: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-enable-update.html
Спасибо, эта исправленная одна из моих проблем. Моя другая проблема заключалась в том, что я был тем, что Opsworks кэширует кулинарные книги по экземплярам, и вам необходимо вручную их обновить: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-enable-update.html – readyornot