로컬 도메인을 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.2로 127.0.0.1:3000하고 127.0.0.3에 127.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.