美文网首页
ngrok+nginx+supervisor 配置

ngrok+nginx+supervisor 配置

作者: faddei | 来源:发表于2019-06-10 12:28 被阅读0次

    编译参考

    #安装
    yum install golang git
    cd /usr/local
    git clone https://github.com/inconshreveable/ngrok.git ngrok
    
    #生成证书
    cd ngrok
    
    NGROK_DOMAIN="ngrok.example.com"
    
    openssl genrsa -out base.key 2048
    
    openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
    
    openssl genrsa -out server.key 2048
    
    openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
    
    openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
    
    #替换证书
    cp base.pem assets/client/tls/ngrokroot.crt
    
    #编译
    make release-server release-client
    #编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序了。 
    
    #启动服务端
    ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.faddei.com" -httpAddr=":80" -httpsAddr=":443"
    
    cp bin/ngrokd  ngrokd
    
    #httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。由于微信限制不能出现端口号,因此这个使用了80、443端口。
    
    #编译其他客户端交叉编译
    
    GOOS=windows GOARCH=amd64 make release-client  
    GOOS=darwin GOARCH=amd64 make release-client
    
    #设置本地客户端
        1)在同级目录下新建一个配置文件ngrok.cfg
            server_addr: "ngrok.example.com:4443"  
            trust_host_root_certs: false  
        2)同级目录下新建一个启动脚本startup.bat
            @echo on
            cd %cd%
            #ngrok -proto=tcp 22
            #ngrok start web
            ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080
        #其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为端口号。
    
    

    我服务器上面是这样做的你可以参考下 supervisor 监控ngrokd进程
    防火墙开启 4443
    下面的-httpAddr=":8888" -httpsAddr=":8443 这两个一定要指定防止端口冲突

    [program:ngrokd]
    directory=/usr/local/ngrok
    command=/usr/local/ngrok/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.example.com" -httpAddr=":8888" -httpsAddr=":8443"
    autostart=true
    autorestart=true
    user=root
    stdout_logfile=/root/logs/ngrok-stdout.log
    stdout_logfile_maxbytes=1MB
    stdout_logfile_backups=10
    stdout_capture_maxbytes=1MB
    stderr_logfile=/root/logs/ngrok-stderr.log
    stderr_logfile_maxbytes=1MB
    stderr_logfile_backups=10
    stderr_capture_maxbytes=1MB
    

    下面是nginx 配置的反向代理80口的指定

    http 的口对应上面的服务配置的8888 https的对应上面的8443

    server {
            listen 80;
            server_name *.ngrok.example.com;
            keepalive_timeout 70;
            proxy_set_header "Host" $host:8888;
            location / {
                    proxy_pass_header Server;
                    proxy_redirect off;
                    proxy_pass http://127.0.0.1:8888;
            }
            access_log off;
            log_not_found off;
    }
    

    相关文章

      网友评论

          本文标题:ngrok+nginx+supervisor 配置

          本文链接:https://www.haomeiwen.com/subject/sfxzxctx.html