2017-02-19 6 views
1

이것은 내 설정입니다.다른 컴퓨터에서 실행중인 IIS 및/또는 Apache로 요청을 라우팅하는 방법 1 공용 IP 포트 80

도메인을 얻었습니다 : domain.com. 내 로컬 네트워크 내에서

내가 액티브 디렉터리 상자에 의해 제공되는 DNS를 가지고,

포트 (80), 호스트 이름 iis.domain.com, 에서 실행되는 IIS 웹 서버와이 사이트를 가지고 iis1.domain.com, iis2.domain.com

apache1.domain.com 및 apache2.domain.com 사이트의 호스트 이름이 apache.domain.com이고 호스트 이름이 인 Apache 웹 서버입니다.

내 로컬 네트워크에서 이러한 모든 사이트에 액세스 할 수 있습니다. iis1, iis2, apache1 및 apache2에 대한 외부 DNS 항목도 있습니다.

공용 IP 주소가 하나 뿐이므로 포트를 인터넷 (포트 80 및 443 포트)으로 전달하는 또 다른 상자를 설정하고 싶습니다. 그 상자에 무엇을 설치하고 어떻게 구성해야하는지 알고 싶습니다.

나는 nginx, haproxy 및 IIS ARR을 보았지만 이들 중 어느 것이 설치가 쉽고 최소의 오버 헤드를 가지는지 알고 싶습니다.

내 마음에 나는 .... iis1.domain.com 사이트에 대한 요청 인 경우 IIS 웹 서버에 해당 요청을 받고 apache1.domain.com에 대한 요청 인 경우이를 확인하고 싶습니다. 그런 다음 Apache 웹 서버로 이동하십시오. 리눅스 솔루션으로 가고 싶습니다만, 어떻게 설정해야하는지 잘 모르겠습니다.

미리 감사드립니다.

P. 가능한 해결책을 보았습니다 here.

이 작품이 마음에 드시나요? (내 생각에 가장 쉬운)

server { 

     listen 80 default_server; 

     server_name iis1.domain.com; 

     location/{ 
         proxy_pass http://iis1.domain.com/; 
     } 

} 

server { 

     listen 80 default_server; 

     server_name apache1.domain.com; 

     location/{ 
         proxy_pass http://apache1.domain.com/; 
     } 

} 

답변

0

내가 haproxy와 함께 갈 것
단지 내부 DNS 대 외장형 매우주의해야합니다. 질문에있는 예제가 dns .... (프록시) (외부)를 가리키며 .... 어느 쪽이 DNS를 가리키고 있는지 ... 내 의미를 알 수 있다고 생각합니다.

global 
    # default globals 
defaults 
    # default globals 
frontend http-in 
    bind      YOUR.IP.GOES.HERE:80 
    bind      YOUR.IP.GOES.HERE:443 ssl crt PATH/TO/CERT-FILE.PEM no-sslv3 
    mode      http 
    option      httplog 
    option      httpclose 
    option      forwardfor 

    acl iis1     hdr(Host) -i iis1.domain.com 
    acl iis2     hdr(Host) -i iis2.domain.com 
    acl apache1     hdr(Host) -i apache1.domain.com 
    acl apache2     hdr(Host) -i apache2.domain.com 

    use_backend iis if iis1 
    use_backend iis if iis2 
    use_backend apache if apache1 
    use_backend apache if apache2  

backend iis 
     server IIS  xxx.xxx.xxx.xxx:80 check 

backend apache 
     server APACHE xxx.xxx.xxx.yyy:80 check 
:

HAProxy이 백엔드의 IP 주소를 가리 것이다 때문에 내부 및 외부 DNS는

HAProxy의 설정은 다음과 같이 보일 것입니다 프록시를 가리 의도 백엔드에 라우팅 벌금을 얻을 것

+0

실제로이 nginx를 함께 리눅스 박스를 설치하여 작동하도록 관리합니다. –

+0

답변 해 주셔서 대단히 감사드립니다. 나는 당신의 해결책을 좋아합니다, 그것은 제 것보다 더 우아합니다. 나는 이미 그 동안 광산을 구현했지만, 나는 그것이 효과가 있다고 확신하면서 당신의 것을 받아 들일 것입니다. 방금 haproxy와 nginx 사이의 비교 비디오를 보았습니다. [link] (https://www.youtube.com/watch?v=yQvcHy_tPjI) 극단적 인 상황에서는 nginx의 성능이 약간 향상되고 요청을 처리하는 데 실패하지 않는 것으로 나타납니다. –

0

나는 실제로이 작업을 nginx를 사용하여 리눅스 박스를 설치함으로써 얻을 수 있었다. 이 상자의 포트 80은 인터넷으로 전달됩니다.

/etc/nginx에서 다른 설정 파일을 찾기 위해 한 줄을 추가했습니다. -> include /etc/nginx/sites-enabled/*.conf; .

그래서에서의/etc/nginx를/사이트 사용이/나는이 정보를 하나 개의 설정 파일 작성 :

server { 
    listen 80; 
    server_name apache1.domain.com; 
    location /{ 
     proxy_pass http://apache1.domain.com; 
    } 
} 

server { 
    listen 80; 
    server_name apache2.domain.com; 
    location /{ 
     proxy_pass http://apache2.domain.com; 
    } 
} 

server { 
     listen 80; 
     server_name iis1.domain.com; 
     location /{ 
       proxy_pass http://iis1.domain.com; 
     } 
} 

server { 
     listen 80; 
     server_name iis2.domain.com; 
     location /{ 
       proxy_pass http://iis2.domain.com; 
     } 
}