场景
正常流程:客户端程序 -> 访问 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
ginx
ginx.exe -c "D:apps
ginxconf
ginx.conf"
其中 D:apps
ginx
是我这里 nginx.exe 所在的目录。
参考文章
学习openresty时,nginx的一个坑
我可以使用/ etc/hosts來映射主機名和端口嗎? - 優文庫
nginx_反向代理实现使用域名访问本地项目_初学者乐园的博客-CSDN博客