Windows 下 使用 Fiddler + nginx 本地 debug 手机APP所访问的后台代码

来源:互联网 发布:mac抓取网页视频 编辑:程序博客网 时间:2024/06/05 04:58

有时候,对APP的bug的定位的时候,光查看服务器的log是定位不出来具体问题在哪儿的。需要进行Debug进行分析.

有一种方式是 直接进行 remote debug, 这个配置服务器的配置,然后本地启动就ok了。这个有个缺点是,当你打了 断点的时候,别人访问的时候,就会卡在那里。直到你讲该 断点 释放掉

另一种方式是 将请求引入到本地工程上来,进行debug. 本文就将探讨这种方式


主要的思路是:

  1. Fiddler - 手机代理到 local machine
  2. nginx - 对 域名请求 根据端口的不同 进行分发
  3. 本地机器捕捉请求,然后进行debug分析

操作步骤如下:

1. 安装+配置 nginx

安装的话,参考官网就可以了
在Windows下配置,需要注意点:

    1. nginx.conf 配置:
#user  nobody;worker_processes  1;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    keepalive_timeout  65;    #gzip  on;    include conf.d/*.conf;  }
  • conf.d/test.conf的配置:
upstream gwhyz{         server 192.168.158.80:8080;}server {        listen 80;        server_name hello.test.com;        location ~/gwhyz/ {             proxy_pass http://gwhyz;        }}
  • 文件路径如下:

文件路径

2. 设置 windows下的 80端口

默认的,win7的80端口会被系统进程所占用. 而nginx进行转发的时候,又默认是对80端口进行监听. 所以要把默认的那个系统进程给停掉

修改的步骤如下:

  • 2.1. 在cmd中输入 regedit,回车
  • 2.2. 在目录中找到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
  • 2.3. 修改 Start的值为1,然后重启
    这里写图片描述

具体可参考:http://blog.csdn.net/small____fish/article/details/8222865

3. 设置 hosts文件

  • 3.1. 在目录C:\Windows\System32\drivers\etc\ 下找到 hosts文件,然后添加一行

    假设本机地址为:192.168.158.80

        192.168.158.80 hello.test.com
  • 3.2. 然后在 cmd 窗口中输入以下命令让hosts生效
    ipconfig /flushdns

4. 设置 手机WIFI 代理

这里写图片描述

5. 配置 fiddler

这里主要需要注意的是代理的设置。因为在进行试验的时候,我自己的机器默认是有翻墙的代理的,然后没有进行这一步的设置,老是访问不到本地的 nginx

在 Tools -> WinINET Options 打开代理,进行设置:
这里写图片描述

6. 启动本地项目,然后在APP端进行访问,就可以进行debug了

  1. 最后面可以看到,如果在APP端发出 http://hello.test.com/gwhyz/… 的请求,就能在本地机器上捕捉到,并进行debug分析
0 0
原创粉丝点击