Браузер Chrome / mium & Brave не распознает любой другой поддомен .locahost в Ip ouside 127.0.0.1 - PullRequest
1 голос
/ 12 июня 2019

Как видно из этого вопроса Google Chrome и любой браузер на основе хрома (Brave Browser, Chromium) принудительно заставят любой поддомен .localhost находиться в 127.0.0.1 и будут использовать любую запись в /etc/hosts file.

Но в моей команде принято использовать .localhost поддоменов, указывающих на vagrant работающих vms, которые не 127.0.0.1, поэтому весь рабочий процесс разбивается на гетерогенную команду (каждый члену него другая ОС на своем компьютере)

Как мне обойти эту проблему?

1 Ответ

1 голос
/ 12 июня 2019

Хороший способ обойти эту проблему - иметь локальный обратный прокси-сервер для каждой рабочей станции / работодателя, прослушивающий 127.0.0.1 и любой порт, который вы используете для связи с находящимися в разработке приложениями.

Простой способдля этого используется веб-сервер nginx.Предполагая, что субдомен .localhost является myapp.localhost, а vagrant vm прослушивает ip 192.168.10.80, правильные настройки nginx:

server {
 listen 80;
 server_name myapp.localhost;
 location / {
    proxy_set_header Host            $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://192.168.10.80;
 }
}

В дистрибутиве Ubuntu GNU / Linux вы должны удалить /etc/nginx/sites-enabled/default создайте новый файл в /etc/nginx/sites-available и символическую ссылку в папку etc/nginx/sites-enabled/.

ПРИМЕЧАНИЕ: Используйте полные пути во время символической ссылки вместо относительных.

Также, как вы заметили, я также передаю заголовки Host и X-Forwarded-For, которые используются, потому что некоторые приложения могут разрешать URL из заголовков, а обычно используется заголовок Host (например, древние версииCodeingiter) для автоматического разрешения URL в процессе разработки.

Также для других платформ может также прекратить обслуживать контент из-за отсутствия соответствующих заголовков, что делает PITA разработки (другой, который не используется в сувлаках;)).

...