一、概述

安装后ngrok 后输入子域名就可以访问内网服务了,但是访问的时候需要携带端口号是很不方便的。

而且对于有些服务例如微信公众平台,它只允许填入80443  端口的地址,其他的端口是不允许的。

这时候就要用到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  ,同样可以访问:

最后修改:2017 年 10 月 30 日
如果觉得我的文章对你有用,请随意赞赏