一、概述
安装后ngrok
后输入子域名就可以访问内网服务了,但是访问的时候需要携带端口号是很不方便的。
而且对于有些服务例如微信公众平台,它只允许填入80
和443
端口的地址,其他的端口是不允许的。
这时候就要用到nginx
的反向代理功能。
二、配置反向代理
添加ngrok.conf
到nginx
配置文件目录,填入以下配置:
server{
listen 80;
server_name *.ngrok.dyxmq.cn; //子域名前面一定要有个*
location / {
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:9080; # 改成你的端口号
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://127.0.0.1:9080; # 改成端口号
}
charset utf-8;
access_log /var/log/nginx/ngrok/access.log main;
error_log /var/log/nginx/ngrok/error.log error;
}
然后使用service nginx reload
命令重启nginx
,打开浏览器测试,不带端口号是可以访问的:
三、高级玩法
觉得*.ngrok.dyxmq.cn
太长了,看起来也比较丑,可以再做如下修改。
添加一个新的子域名wx.dyxmq.cn
,以A记录形式解析到服务器主机,然后在ngrok.conf
中添加以下段:
server{
listen 80;
server_name wx.dyxmq.cn;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host b.ngrok.dyxmq.cn:9080;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://127.0.0.1:9080;
}
charset utf-8;
access_log /var/log/nginx/ngrok/access.log main;
error_log /var/log/nginx/ngrok/error.log error;
}
重启nginx
,同样可以访问:
此处评论已关闭