다음 명령을 사용하여 으로 리디렉션합니다 80
. 3000
모든 도메인의 모든 요청은 다음으로 리디렉션됩니다 3000
.
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
처리해야 할 사항: 하나는 수신 80001
, 다른 하나는 수신 8002
두 도메인을 두 포트에 연결하는 방법은 무엇입니까?
아래와 같은 JSON 구성이 가능합니까?
[
{
"port": 8001,
"domains": ["example.com", "example2.com"]
},
{
"port": 8002,
"domains": ["domain.com", "domain2.com"]
}
]
그러면 해당 요청 이 수신 프로세스 와 다른 두 도메인 으로 전송됩니까 domain.com
?domain2.com
8002
8001
답변1
일반적으로 웹 서버를 설정해야 합니다.가상 호스트가능한모드 에이전트(아파치의 경우).
그러나 역방향 프록시를 사용하는 것이 좋습니다.하 요원조심하세요. 포트 80에서 수신 대기하도록 Haproxy를 설정하고 도메인 이름의 ACL을 사용하여 트래픽을 웹 서버로 전달합니다. 127.0.0.1:8002 및 127.0.0.1:80001(haproxy가 동일한 서버에서 실행 중인 경우)을 수신하는 가상 호스트로 웹 서버를 설정합니다.
설정은 매우 간단합니다.
보고 있다이 예. Docker 컨테이너 앞에 haproxy를 배치하는 데 사용되지만 필요에 맞게 구성을 조정할 수 있습니다.
답변2
사용 apache
:
특히 apache
.apache
httpd.conf
특정 배포판에 적합한 파일을 찾아야 합니다 . 이름과 위치가 다르기 때문에 설명서나 Google을 읽어야 합니다. 아래 예는 CentOS 7( apache
v2.4 실행) 을 기반으로 합니다.
/etc/httpd/conf/httpd.conf
파일 에 추가:
<VirtualHost example.com:80>
ProxyPass / http://localhost:8001
ProxyPassReverse / http://localhost:8001
</VirtualHost>
<VirtualHost example2.com:80>
ProxyPass / http://localhost:8001
ProxyPassReverse / http://localhost:8001
</VirtualHost>
<VirtualHost domain.com:80>
ProxyPass / http://localhost:8002
ProxyPassReverse / http://localhost:8002
</VirtualHost>
<VirtualHost domain2.com:80>
ProxyPass / http://localhost:8002
ProxyPassReverse / http://localhost:8002
</VirtualHost>
apache
새 구성을 읽으려면 재부팅(또는 다시 로드)해야 합니다 .
방화벽을 사용하여 포트 8001 및 8002가 외부에서 접근할 수 없도록 하십시오.
답변3
DNAT를 사용하는 경우 다음 명령을 사용할 수 있습니다.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:8001
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:8002
10.10.10.10을 자신의 컴퓨터로 변경해야 합니다.