Mapeando um domínio local para http: // localhost: port_number

1

Eu tenho um arquivo /etc/hosts com as duas linhas a seguir:

127.0.0.2   myapp.dev
127.0.0.3   api.myapp.dev

e isso funciona bem. Quando eu pingar myapp.dev ele mapeia para 127.0.0.2 e quando eu pingar api.myapp.dev ele mapeia para 127.0.0.3 , como deveria ser.

Agora preciso mapear 127.0.0.2 para 127.0.0.1:3000 e 127.0.0.3 para 127.0.0.1:3001 .

Isso é necessário porque eu estou tentando executar um aplicativo Rack cujo arquivo de configuração 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

O que esse arquivo de configuração faz é executar o aplicativo Rack na porta 3001. Quando a variável de ambiente EMERALD_END é definida como production , ele usa Rack::Static para exibir os arquivos estáticos. Por outro lado, quando EMERALD_ENV é definido como development ou test , ele inicia um aplicativo ReactJS como o aplicativo front-end na porta 3000.

A idéia geral agora é acessar o aplicativo front-end em http://myapp.dev e acessar a API (back-end) em http://api.myapp.dev .

Eu tentei alguns hacks e até considerei a possibilidade de usar o iptables ou outro software de filtragem de pacotes para fazer isso. Eu sei que posso usar regras iptables para redirecionar a entrada de um determinado IP / porta para outro IP, mas prefiro encontrar uma solução mais fácil.

Alguma sugestão?

    
por Ed de Almeida 23.03.2017 / 05:17

0 respostas