인터넷의 로컬 호스트

인터넷에 있는 로컬 호스트에서 SSL을 제한없이 사용할 수 있습니다.


소개


많은 서비스가 당신에게 인터넷에서 로컬 호스트를 공개하는 방법을 제공합니다.타사 API를 테스트하거나 현재 개발 서버를 표시해야 합니다.예를 들어 가장 유행하는 것은 다음과 같다.
  • ngrok
  • localtunnel
  • pagekite
  • 그렇다면 왜 바퀴를 재발명해야 합니까?근원을 찾아 간단한 복잡성을 이해해야 하기 때문이다.별거 아니야.

    선결 조건


    그럼 저희가 뭘 필요로 할까요?
  • 서버 ($5DO 서버 사용)
  • 도메인
  • 호기심과 인내심
  • 이런 설정은 어떤 장점이 있습니까?물어봐도 돼.

  • 사용자 정의 도메인과 원하는 도메인을 모두 지정합니다.
  • 무제한 사용
  • 기타 서비스 요금 지불 계획 초과
  • Let's get started, shall we?


    이것은 단지 4단계 설정일 뿐이다
  • 탐지 포트와 하위 영역을 연결하는 서버에서nginx를 사용하여 탐지 포트를 설정합니다.
  • DNS에 하위 도메인 추가(awesome Digital Ocean DNS 사용)
  • 즐겨찾기Let's Encrypt에서 제공하는 SSL 인증서 추가
  • 놀라운 SSH 명령을 사용하여 트래픽을 전송합니다.
  • 단계 1 - nginx 설정 서버를 사용하여 하위 영역의 데이터를 서비스합니다


    서버에 먼저 설치하십시오nginx.
    Ubutnu를 사용한다면 sites-available/etc/nginx 폴더에nginx에 프로필을 추가해야 합니다.nginx 프로필은 다음과 같습니다.
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
    
    server {
        server_name 42.igauravsehrawat.com;
    
        location / {
            proxy_pass http://localhost:4242;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    
            # Enables WS support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
    
    server {
        server_name www.42.igauravsehrawat.com;
    
        location / {
            proxy_pass http://localhost:4242;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    
            # Enables WS support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
    
    구성을 살펴보겠습니다.
  • server_name명령이 있습니다. 서비스가 요청한 도메인을 알려주고 listen도메인에서 어느 포트의 명령을 정탐합니다.
  • location 지령은 여기서 매우 중요하다. 여기서 우리는 단지 포트localhost4242로부터 요청을 대리할 뿐이다.이 포트는 매우 중요하다. 왜냐하면 우리는 로컬 호스트의 유량을 그것으로 정할 것이다.그리고 요청에 헤더를 설정합니다.
  • 명령의 나머지 부분은 업그레이드 연결을 통해 이 설정에서 웹소켓 지원을 사용합니다.그게 다야.
  • 참고: server_name 대신 원하는 하위 도메인에 따라 변경해야 합니다.

    2단계 - DNS에서 하위 도메인 구성


    Digital Ocean DNS Service를 사용하면 선택한 하위 도메인, 즉 42를 추가합니다.igauravsehrawat.1단계에서 완료된com
    하위 도메인을 추가하기 위해 3개의 레코드(a 레코드, AAAA 레코드, CNAME 레코드)를 작성합니다.
    A와 AAAA 레코드는 아래와 같이 디지털 해양 서버로 리디렉션됩니다.

    CNAME는 A/AAA 레코드의 별명일 뿐입니다.세 가지 모두 다음과 같이 표시됩니다.

    이러한 것들은 인터넷을 통해 귀하의 하위 영역을 방문하여 42.igauravsehrawat.com 페이지를 표시할 수 있어야 합니다. 이것은 포트502 Bad Gateway로 전송되는 것이 없기 때문입니다.

    . 3단계 - SSL 활성화


    SSL을 사용하는 것은 식은 죽 먹기입니다.here에 따라 4242 키트 설치
    그리고nginx에magic 명령을 실행합니다certbot아래의 내용을 보실 수 있습니다

    두 번 실행, 한 번은 하위 도메인, 다른 한 번은 CNAME(별칭)입니다.
    이제 보셨을 거예요. 우리 자역으로 가세요. www.42.igauravsehrawat.com

    서버의localhost 포트sudo certbot --nginx에서 아무런 내용도 실행되지 않았기 때문에 예상한 것입니다.
    왕, 우리는 즐거움의 춤에서 한 발자국 떨어진 곳에 있다.

    단계 4-SSH 마술


    명령 하나면 그들을 통치할 수 있다4242- N이 "원격 명령을 실행하지 마십시오. 전달 포트에 유용합니다."
    -R 은 "원격(서버) 호스트에 지정된 TCP 포트 또는 유닉스 소켓에 대한 연결이 로컬로 전달됩니다."라고 알려 줍니다.
    첫 번째localhost는 서버의 것이고, 두 번째는 로컬 기계의 것이며, 그 다음은 서버의 주소이다.SSH 키를 설정하면 (권장) 암호가 없고 아무 것도 없습니다.
    그렇습니다.
    약속한 대로 즐겁게 춤을 추다.

    Wait, wait, we haven't tested yet.


    테스트


    테스트를 진행하기 위해서, 나는 ssh -N -R localhost:4242:localhost:3000 [email protected]와docreate-react-app를 사용하여 포트 3000(기본값)에서 create a react 응용 프로그램을 실행할 것이다.
    매직 SSH 명령 실행npm start움직이는 걸 봤어요.

    결론


    서버 한 대의 기능만 있기 때문에 자신의 설정을 가지는 것은 어렵지 않다.SSL을 지원하는 사용자 정의 하위 도메인만 있으면 제한이 없습니다.

    좋은 웹페이지 즐겨찾기