Сопоставление локального домена с http: // localhost:<port_number> </port_number>

561
Ed de Almeida

У меня есть /etc/hostsфайл с двумя следующими строками:

127.0.0.2 myapp.dev 127.0.0.3 api.myapp.dev 

и это работает нормально. Когда я пингую, myapp.devэто сопоставляет, 127.0.0.2и когда я пингую, api.myapp.devэто сопоставляет 127.0.0.3, как это должно быть.

Теперь мне нужно сопоставить 127.0.0.2с 127.0.0.1:3000и 127.0.0.3к 127.0.0.1:3001.

Это необходимо, потому что я пытаюсь запустить приложение Rack, файл конфигурации config.ruкоторого

#\ -w -p 3001  require 'emeraldfw'  ENVIRONMENT = ENV['EMERALD_ENV'].nil? ? :development : ENV['EMERALD_ENV']  use Rack::Reloader, 0 use Rack::ContentLength  if (ENVIRONMENT == :production) then use Rack::Static, :urls => {"/" => 'index.html'}, :root => 'fe/build' else Dir.chdir('fe') spawn 'npm start' Dir.chdir('..') end run EmeraldFW::Loader.new 

Этот конфигурационный файл выполняет приложение Rack на порту 3001. Когда для него установлена ​​переменная среды EMERALD_END, productionона используется Rack::Staticдля обслуживания статических файлов. С другой стороны, когда EMERALD_ENV установлен в значение developmentили testон запускает приложение ReactJS в качестве интерфейсного приложения на порту 3000.

Основная идея теперь заключается в доступе к внешнему приложению в http://myapp.devи доступ к API (бэкэнд) в http://api.myapp.dev.

Я попробовал несколько хаков и даже рассмотрел возможность использования iptables или другого программного обеспечения для фильтрации пакетов. Я знаю, что могу использовать правила iptables для перенаправления ввода с определенного IP / порта на другой IP, но я бы лучше нашел более простое решение.

Какие-либо предложения?

1
Это виртуальный хостинг вариант? Jeremiah Megel 7 лет назад 0
Используя сервер, такой как Apache или Nginx, @JeremiahMegel? Ed de Almeida 7 лет назад 0
Я думал о самом приложении Rack, но использование Apache / Nginx / Caddy в качестве обратного прокси-сервера с виртуальными хостами также могло бы работать. Jeremiah Megel 7 лет назад 0
Я не знаю, как это сделать с помощью самого приложения React. Это было бы лучшим вариантом, потому что это программное обеспечение, которое я создаю, имело бы очень сложный процесс установки, если бы мне пришлось добавить установку / настройку веб-сервера или обратный прокси-сервер к нему. Ed de Almeida 7 лет назад 0

0 ответов на вопрос