将本地域映射到 http://localhost:

将本地域映射到 http://localhost:

我有一个/etc/hosts包含以下两行的文件:

127.0.0.2   myapp.dev
127.0.0.3   api.myapp.dev

一切正常。当我 ping 时,myapp.dev它会映射到127.0.0.2,当我 ping 时,api.myapp.dev它会映射到127.0.0.3,正如它应该的那样。

现在我需要映射127.0.0.2127.0.0.1:3000127.0.0.3127.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

此配置文件的作用是在端口 3001 上运行 Rack 应用程序。当环境变量 EMERALD_END 设置为时,production它用于Rack::Static提供静态文件。另一方面,当 EMERALD_ENV 设置为development或时,test它会在端口 3000 启动 ReactJS 应用程序作为前端应用程序。

现在的总体思路是访问前端应用程序,http://myapp.dev并访问 API(后端)http://api.myapp.dev

我尝试了一些技巧,甚至考虑使用iptables或其他数据包过滤软件来执行此操作。我知道我可能会使用iptables规则将输入从某个 IP/端口重定向到另一个 IP,但我宁愿找到一个更简单的解决方案。

有什么建议么?

相关内容