[笔记] 使用 Host 配置 + Ngnix 本地调试 web API
场景
正常流程:客户端程序 -> 访问 API -> 部署在服务器的 Web API
改造之后:客户端程序 -> 访问 API -> Host 配置,将域名解析到本地 -> Ngnix 配置,将端口解析到本地指定端口 -> 运行在本机的 Web API 服务
目的当然是为了调试方便,通常这里的域名,也会是开发/测试环境的域名。
为什么不使用 Postman 等类似的工具?
Postman 只能测试单个接口,直接使用真实的客户端程序,类似于集成测试,可以用于调试一些 Postman 不好模拟和复现的问题。
配置
Host 配置
127.0.0.1 business-dev.test.jgrass.com
因为 Host 配置只能映射域名,就需要 Ngnix 配置反向代理来处理。
Ngnix 配置:将 80 端口映射到 8081 端口,真实的服务跑在本机 8081 端口上。
    server { 
        listen  80; 
        server_name business-dev.test.jgrass.com; 
        location / { 
            proxy_pass http://127.0.0.1:8081; 
        } 
    } 
总觉得有只使用 Ngnix 就可以实现此功能的方法,上面的方法解决了问题,暂时没有继续探索,要解 BUG 去了。(⊙﹏⊙)
其它
在使用 Ngnix 时,遇到一个错误,
nginx: [error] CreateFile() "./logs/nginx.pid" failed (2: The system cannot find the file specified)
折腾了半天,在一堆不靠谱的博文中间,终于从这里找到方法:
学习openresty时,nginx的一个坑
关键就是,使用全路径,在 cmd 中运行此命令:
 D:\apps\nginx\nginx.exe -c "D:\apps\nginx\conf\nginx.conf"
-c 表示 configuration,指定配置文件。
其中 D:\apps\nginx\ 是我这里 nginx.exe 所在的目录。
参考文章
nginx日常维护常用命令 - 莫问今朝· - 博客园
学习openresty时,nginx的一个坑
我可以使用/ etc/hosts來映射主機名和端口嗎? - 優文庫
nginx_反向代理实现使用域名访问本地项目_初学者乐园的博客-CSDN博客
作者:
J.晒太阳的猫
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号