ubuntu와 nodejs로 역방향 에이전트를 만들어 보세요.

우선 프록시 서버는 무엇입니까?

  • 내부 네트워크와 인터넷 사이, 예를 들어 통신 경로의 터널을 이동한다
  • 다른 것이 없어도 외부와 통신할 수 있다.

    프록시 서버는 무엇을 할 수 있습니까?

  • 경유를 통해 프록시 서버 측에서 통신 내용을 검사할 수 있다
  • 프록시 서버 설정을 통해 열람할 수 없는 사이트와 통신(블랙리스트제)을 지정할 수 있다
  • 프록시 서버 설정을 통해 열람할 수 있는 통신, 사이트, 통신(화이트리스트제)을 지정할 수 있다
  • 프록시 서버는 캐시 통신이 가능하기 때문에 고속 접근이 가능하다
  • 기업과 학교의 개인 네트워크에서 외부 네트워크로 가기 위해서는 반드시 프록시 서버를 거쳐야 한다
    전체 인원의 통신 내용 등을 확인하고 싶습니다.
    이 사이트는 볼 수 없고 볼 수 있고 제한할 수 있다.

    그러면 역방향 프록시 서버는 무엇입니까?

  • 내부에서 외부로부터 요청을 받는 프록시 서버에 사용됩니다
  • 어렵다

    리버스 프록시 서버는 무엇을 할 수 있습니까?

  • 액세스에 사용된 호스트 이름에 따라 사용할 웹 서버를 할당할 수 있습니다
  • 같은 호스트 이름이라도 요청을 여러 웹 서버(부하 분산)로 나눌 수 있습니다
  • LineBot 서버의 콜백 URL 포트 번호는 443이어야 합니다.
    두 개 이상 세우면 안 될 줄 알았어요.
    리버스 프록시를 사용하면 여러 서버를 만들 수 있습니다.

    이런 일도 할 수 있으니 너무 편리하지 않습니까

    실제로 일어나보세요.


    작성자 환경

  • Ubuntu16.04(KAGOYA VPS KVM 기기)
  • npm 5.6.0
  • node 9.11.2
  • express 4.16.0
  • 단계


    1. 포트 열기

    $ ufw enable
    yと答える
    
    プロキシサーバが使うポートを開ける
    $ ufw allow 80
    
    KAGOYA 환경이 아닌 경우 라우터의 포트 매핑, 보안 그룹 등을 설정해야 합니다.

    2. express로 웹 서버 만들기

    expressがインストールされてない場合は以下コマンドを実行
    $ npm install -g express-generator
    
    expressでポート3000を使用するプロジェクトを作る
    $ express port3000
    $ cd port3000
    必要なモジュール類をインストール
    $ npm i
    pm2でバックグラウンドで実行させる
    $ pm2 start bin/www --name=3000
    
    3000のプログラムが動いている事を確認する
    $ pm2 list
    ┌──────┬──────┬────────┬───┬─────┬───────────┐
    │ Name │ mode │ status │ ↺ │ cpu │ memory    │
    ├──────┼──────┼────────┼───┼─────┼───────────┤
    │ 3000 │ fork │ online │ 0 │ 0%  │ 45.0 MB   │
    └──────┴──────┴────────┴───┴─────┴───────────┘
    

    3. 리버스 프록시 서버 생성 및 시작

    $ mkdir reverse-proxy
    $ cd reverse-proxy
    
    $ npm install http-proxy
    プログラムを書く(なんと2行です)
    $ echo "var proxy = require('http-proxy');
    proxy.createProxyServer({target: 'http://localhost:3000'}).listen(80)" > index.js
    
    起動する
    $ pm2 start index.js --name=proxy
    
    起動している事を確認する
    $ pm2 list
    ┌───────┬──────┬────────┬───┬─────┬───────────┐
    │ Name  │ mode │ status │ ↺ │ cpu │ memory    │
    ├───────┼──────┼────────┼───┼─────┼───────────┤
    │ 3000  │ fork │ online │ 0 │ 0%  │ 45.0 MB   │
    │ proxy │ fork │ online │ 0 │ 0%  │ 36.0 MB   │
    └───────┴──────┴────────┴───┴─────┴───────────┘
    

    4. 브라우저로 접근하기


    서버가 있는 환경에서 다음 명령을 실행하여 IP 주소를 조사합니다$ ifconfig | grep "inet addr:"
    inet addr:192.168.1.5
    inet addr:127.0.0.1 Mask:255.0.0.0
    응, 192.168.1.5지?
    *127.0.0.0.1은 루프백 주소라고 하는 자신의 IP 주소입니다.
    다른 기계에서 브라우저로 접근해 보세요.

    표시 성공!
    그리고 URL은 리버스 프록시만 연결된 것처럼 보입니다 (그렇습니까)
    또한 이 리버스 프록시 SSL화 또는 각 호스트 이름에 대한 변경 (라우팅) 웹 서버
    웹소켓도 지원합니다.
    신경 쓰이는 사람 알아보세요.
    이곳에서 당신의 보살핌을 받았습니다.
    프록시 서버
    https://www.idcf.jp/words/proxy-server.html
    Node.js의 http-proxy로 프록시 서버 만들기
    https://qiita.com/setouchi/items/75de9db509f20ecaf369

    좋은 웹페이지 즐겨찾기