로컬 도메인을 http : // localhost : <port_number>에 매핑


1

/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로 입력을 리디렉션 할 수 있지만 더 쉬운 해결책을 찾고 싶습니다.

어떤 제안?


가상 호스팅은 옵션입니까?
Jeremiah Megel

@JeremiahMegel, Apache 또는 Nginx와 같은 서버를 사용하십니까?
Ed de Almeida

랙 응용 프로그램 자체를 생각하고 있었지만 가상 호스트를 사용하는 Apache / Nginx / Caddy를 리버스 프록시로 사용하는 것도 효과가 있습니다.
Jeremiah Megel

React 응용 프로그램 자체 에서이 작업을 수행하는 방법을 모르겠습니다. 웹 서버 또는 리버스 프록시의 설치 / 구성을 추가해야하는 경우, 작성중인이 소프트웨어는 설치 프로세스가 매우 복잡하므로 최상의 옵션입니다.
Ed de Almeida
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.