자체 제작 Ngrok 서버가 HFUT 네트워킹 관통

3008 단어
원인:
학교 도서관 좌석 조회 시스템과 미지의 숙제와 문제풀이 시스템은 캠퍼스 네트워크만 볼 수 있기 때문에 (처음에 공망은 방문할 수 있었다) 불편하다.그래서 이런 생각을 하게 됐어요. 인터넷으로 인터넷을 뚫고 인터넷을 방문하는 사이트를 실현하는 거예요.
사전 준비:
  • 텐센트 클라우드 서버, 도메인 이름, Ubuntu 14.042.공망과 내망에 접근할 수 있는 기계: 룸메이트의 라즈베리 파이, 데비안 3.인트라넷만 액세스할 수 있는 기계(학교 서버)
  • 다음은 정식으로 시작합니다(저는 한 걸음 한 걸음 나아가지 않고 기존의 선인들의 경험을 공유하고 구덩이와 자신의 경험을 보충할 것입니다)
  • Ngrok 서버 구축, 참조:https://www.qcloud.com/community/article/915303001489140121

  • 갱1:git버전의 문제, 내가makerelease-server를 할 때 가방 하나를 알려줬는데 찾을 수 없어요.git 버전의 문제를 찾았습니다. git를 1.2로 업그레이드하시겠습니까, 1.3으로 업그레이드하시면 됩니다.
    갱2: 기계 1과 기계 2의 OS와 지령집 구조가 같은지 주의해야 한다. 위의 글에서 그 작가의 것은 모두 ubuntu이기 때문에 상관없다.내 상황하에서, 왜냐하면 라즈베리 파이는 linux,arm이기 때문이다.그래서 컴파일 명령은 GOOS=linux GOARCH=arm make release-client (OS, ARCH를 주의하고 바꾸면 된다)
    갱3: 이 명령./ngrok -subdomain pub -proto=http -config=ngrok.cfg 80을 실행할 때subdomain의 의미를 알아야 합니다. 예를 들어 서버를 시작하기 전에domain 매개 변수는ngrok입니다.hfutoyj.cn그럼, 지금 시작하는 이 터널은pub를 통과해야 합니다.ngrok.hfutoyj.cn에 방문하십시오.만약 당신이 지정하지 않았다면, 그것도 무작위로 일련의 숫자를 만들어 줄 것이다.
  • 서비스를 시작한 후에 닫으면 없어지기 때문이다.setsid나 unhup으로 서비스가 백그라운드에서 실행될 수 있습니다.저는 슈퍼바이저로 관리합니다. 더 편리하기 때문에 서버가 리셋된 후에도 자동으로 서비스를 리셋할 수 있습니다
  • 나머지는 라즈베리 파이 웹 서버를 설정하는 것입니다. 저는 Nginx를 사용합니다.(대갱: 룸메이트의 기계라서 사이트-available 아래의 default 수정 설정이 적용되지 않아 오랫동안 갱신되었습니다. 나중에 nginx.conf를 고치면 도움이 됩니다. 그중에서nginx의log를 보는 것이 도움이 됩니다)
  • 구성은 다음과 같습니다.
       server{
                    listen 8000;
                    location /DKTK/ {
                            proxy_pass http://210.45.250.231:8080;
                            proxy_set_header Host $host:1500;
                            proxy_set_header    X-Real-IP       $remote_addr;
                            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_connect_timeout 300;
                            }
                    location /roomshow/ {
                            proxy_pass http://210.45.242.123;
                            proxy_set_header Host $host:1500;
                            proxy_set_header    X-Real-IP       $remote_addr;
                            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_connect_timeout 300;
                            }
                    location /roompre/ {
                            proxy_pass http://210.45.242.123;
                            proxy_set_header Host $host:1500;
                            proxy_set_header    X-Real-IP       $remote_addr;
                            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_connect_timeout 300;
                            }
                    }
    
    

    그중의 proxy_set_header Host $host:1500; 하나는 반드시 없어서는 안 된다.그리고 뒤에 있는 포트 번호는 서버 쪽 http가 시작할 때 선택한 포트 번호에 달려 있습니다.
    업데이트:nginx 기본 업로드 파일의 크기는 1M입니다. nginx 설정에서 수정할 수 있습니다.
  • nginx 프로필nginx를 엽니다.conf, 경로는 일반적으로/etc/nginx/nginx입니다.conf.
  • http{} 섹션에 client_ 추가max_body_size 20m; 최대 업로드 허용 크기는 20m입니다.
  • 저장 후nginx를 다시 시작하고 문제 해결
  • 읽어주셔서 감사합니다~

    좋은 웹페이지 즐겨찾기