tengo un /etc/hosts
Archivo con las dos líneas siguientes:
127.0.0.2 myapp.dev
127.0.0.3 api.myapp.dev
y esto funciona bien. Cuando hago ping myapp.dev
se asigna a 127.0.0.2
y cuando hago ping api.myapp.dev
se asigna a 127.0.0.3
, como debería ser.
Ahora necesito mapear 127.0.0.2
a 127.0.0.1:3000
y 127.0.0.3
a 127.0.0.1:3001
.
Esto es necesario porque estoy intentando ejecutar una aplicación de Rack cuyo archivo de configuración config.ru
es
#\ -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
Lo que hace este archivo de configuración es ejecutar la aplicación Rack en el puerto 3001. Cuando la variable de entorno EMERALD_END se establece en production
usa Rack::Static
Para servir los archivos estáticos. Por otro lado, cuando EMERALD_ENV se establece en development
o test
inicia una aplicación ReactJS como la aplicación de front-end en el puerto 3000.
La idea general ahora es acceder a la aplicación de front-end en http://myapp.dev
y acceder a la API (back-end) en http://api.myapp.dev
.
Probé algunos hacks e incluso consideré la posibilidad de usar iptables u otro software de filtrado de paquetes para hacer esto. Sé que puedo usar iptables reglas para redirigir la entrada de una determinada IP / Puerto a otra IP, pero prefiero encontrar una solución más fácil.
¿Alguna sugerencia?
fuente