Nginx 使用反向代理 解决异步api获取问题!

Nginx 使用反向代理 解决异步api获取问题!,第1张

问题解决非常简单,在宝塔服务器站点配置中,对nginx站点配置增加如下配置信息:

1、location 后面的/api是匹配本地url中带有指定目录所用;

2、 rewrite ^/api/(.*)$ /$1 break 这一段是用来进行匹配修改的,意思是去除掉后面的api

3、 proxy_pass http://localhost:8080 这一段是用来设置转发地址的,意思就是你要把/api 这个路径指向的地址;

比如说你本地是 123.com 你要把 123.com/api 变成 234.com/api 就在 proxy_pass中输入 http://234.com 即可;

好多文章都说nginx是异步非阻塞,这里针对这个概念记录一下自己的理解

异步通常是指调用之后,直接返回,如果有结果后通过消息通知,或者调用注册的回调函数进行处理,其核心在于有结果后通过其他执行流程进行通知和处理,不影响现有的执行流程执行。

而nginx通过超时的epoll方式进行监听连接和或者监听接收多个socket的数据,这里虽然存在超时等待,当还是说它是异步,实际上更确切说是epoll内部的异步机制,即epoll是对不同的socket通过注册感兴趣的事件,内部不是轮询等待这些socket,而是通过在事件发生后收到通知方式对事件进行处理,这里进行超时等待实际上是为了留有时间让事件发生,回收通知。详细过程可参考 【Linux学习】epoll详解

总结: nginx的异步是指epoll的异步机制,即内部探测socket事件发生是通过消息通知方式

非阻塞通常是指调用指定调用后,若不满足当前需求直接返回,若满足需求则处理,处理之后返回,因此这种方式实际是需要轮询访问直至成功。

nginx是采用一个进程单线程方式进行多个socket数据处理和建立连接,因此在每个socket进行接收数据或者建立链接的socket时必须采用非阻塞的模式,这样才不会导致一个socket阻塞后,导致其他的socket饿死的情况。

总结: nginx的非阻塞是指nginx对于建立链接的socket和每个建立的连接是采用非阻塞的模式进行数据处理的

以上是我对nginx异步非阻塞的理解,如若有误欢迎大家补充指正。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7866911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存