Loading

[笔记] 使用 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博客

原文链接:https://www.cnblogs.com/jasongrass/p/14183942.html

posted @ 2020-12-24 14:32  J.晒太阳的猫  阅读(312)  评论(0编辑  收藏  举报