场景
正常流程:客户端程序 -> 访问 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博客
原文链接: https://blog.jgrass.cc/posts/nginx-host-web-api-debug/
本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。