/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