Ngrok服务器

自己搭建ngrok服务端的官方文档:

https://github.com/inconshreveable/ngrok/blob/master/docs/SELFHOSTING.md

本文关注ngrok与apache反向代理配置,共用80端口的问题,及安装为服务的方法

编译客户端请参考:

http://blog.csdn.net/u013216667/article/details/50782084

安装

服务端ngrokd可以直接使用统一客户端,指定不同证书即可

客户端需要自行编译

apt-get install ngrok-server

启动

证书中的域名需要与使用的域名一致

ngrokd -domain=tunnel.wamdy.com -tlsKey=server.key -tlsCrt=server.crt -httpAddr=:80

Apache反向代理

引入模块

ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load

ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf

ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load

配置

<VirtualHost *:80>
ServerName tunnel.wamdy.com
ServerAlias *.tunnel.wamdy.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine On
##所有80端口访问重定向到99端口
RewriteRule ^/(.*)$ http://%{HTTP_HOST}:99/$1 [P]
## 修改重定向头,防止3XX响应跳转到真实端口
Header edit Location "^http://(.*):99/(.*)$" "http://$1/$2"
</VirtualHost>

将ngrok安装为服务

创建systemd配置文件

$ sudovim /etc/systemd/system/ngrok.service

写入内容

[Unit]

Description=start and stop the ngrok server

After=syslog.target network.target

[Service]

PrivateTmp=true

Type=simple

Restart=always

RestartSec=1min

StandardOutput=null

StandardError=null

ExecStart=/usr/bin/ngrokd -domain=tunnel.wamdy.com -httpAddr=:99 -httpsAddr=:999 -tlsKey=/opt/ngrok/device.key -tlsCrt=/opt/ngrok/device.crt %i

ExecStop=/usr/bin/killall ngrok

[Install]

WantedBy=multi-user.target

修改文件权限为:777

启用服务

systemctl enable ngrok.service

启动服务

Service start ngrok



打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据