로컬 도메인을 http : // localhost : <port_number>에 매핑 Dir.chdir(‘..’) end run EmeraldFW::Loader.new 이 구성 파일의

/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:3000하고 127.0.0.3127.0.0.1:3001.

구성 파일 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에서 랙 애플리케이션을 실행하는 것입니다. 환경 변수 EMERALD_END가 설정 되면 정적 파일을 제공하는 production데 사용 Rack::Static됩니다. 반면 EMERALD_ENV가 설정 development되거나 test포트 3000에서 프론트 엔드 애플리케이션으로 ReactJS 애플리케이션을 시작하는 경우.

일반적인 아이디어는 현재에서 프론트 엔드 애플리케이션에 http://myapp.dev액세스하고에서 API (백엔드)에 액세스하는 것 http://api.myapp.dev입니다.

나는 해킹을 시도했으며 iptables 또는 다른 패킷 필터링 소프트웨어를 사용하여이를 수행 할 가능성을 고려 했습니다. iptables 규칙을 사용 하여 특정 IP / 포트에서 다른 IP로 입력을 리디렉션 할 수 있지만 더 쉬운 해결책을 찾고 싶습니다.

어떤 제안?



답변