2개 이상의 웹 서버가 하나의 고정 IP를 공유합니다.

2개 이상의 웹 서버가 하나의 고정 IP를 공유합니다.

ISP로부터 1개의 고정 IP를 받았습니다. 내 도메인 이름이 내 wan IP를 가리키는 2개의 NS(NS 공급자로부터)를 받았습니다. 내 질문: 내 네트워크 내의 서버 1에 server1.domainname.td를 연결하고,
내 로컬 네트워크(server1 =192.168.1.2 및 server2=192.168.1.3)에 있는 서버 2에 연결하려면 server2.domainname.td를 어떻게 얻나요? 포트 80만 사용(포트 전달 없음) (server1=ms win server2=Linux) 두 번째 질문: 내 네트워크 외부에 있는 서버에서 server3.domainname.td에 연결하는 방법(인터넷의 또 다른 고정 IP)

답변1

IP 주소가 하나만 있는 경우(따라서 포트 1개 80443)역방향 프록시좋다nginx적절한 내부 서버로 요청을 전달합니다.

공개 주소를 가리키는 DNS A레코드를 추가해야 합니다 .server1.example.comserver2.example.com

그만큼nginx좋은 라우터가 있다면 서버가 게이트웨이에서 실행 중일 수 있습니다.OpenWrt펌웨어 또는 프록시 기능을 갖춘 전문 라우터. 그렇지 않으면 내부 서버 중 하나를 사용하고 라우터에서 내부 서버로 포트 전달을 설정해야 합니다.

구성 방법에 대한 온라인 자습서가 많이 있습니다.역방향 프록시로서의 nginx.

이 구성은 속도가 느리고 오류가 발생하기 쉽습니다. 전문적인 배포를 위해서는 외부 웹 호스팅을 사용하세요.

답변2

다른 사람들이 제안한 것처럼 웹 트래픽(포트 443 또는 포트 80)에만 관심이 있다면 nginx를 사용하십시오. 매우 가볍습니다. 그것이 내가 하는 일이다.

Linux를 가정하면 /etc/nginx에서 네트워크용 파일(예: Proxy.conf)을 만듭니다.

server {
    listen       80;
    server_name  server1.domainname.td;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://localhost:8085;
    }
}

이 스탠자를 파일(예:route.conf)에 생성하고 /etc/nginx 아래에 배치합니다(저는 Linux로 가정합니다). 목적에 따라 필요한 만큼 스탠자를 추가합니다. /etc/nginx/nginx.conf에 다음을 포함합니다.

include /etc/nginx/route.conf  (do this before the closing bracket)

server3의 경우 Proxy_pass를 호스트 이름이나 IP로 변경합니다.

proxy_pass http://youroutsideserver ..

업데이트: Piotr이 지적한 대로 /etc/nginx/sites-available에 Route.conf 파일을 배치하고 사이트 지원 디렉토리에 심볼릭 링크를 연결하세요.

ln -s /etc/nginx/sites-available/router.conf /etc/nginx/sites-enabled

관련 정보