简介
Nginx是一个http服务器。是一个使用c语言开发的高性能的http 服务器/反向代理服务器及电子邮件代理服务器。nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。
nginx可以作为web服务器,但更多的时候,我们把它作为网关,因为它具备网关必备的功能:
- 反向代理
- 负载均衡
- 动态路由
- 请求过滤
今天主要理解一下nginx反向代理的原理。
什么是反向代理?
- 代理:通过客户机的配置,实现让一台服务器代理客户机,客户的所有请求都交给代理服务器处理。
- 反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。
nginx可以当做反向代理服务器来使用:
- 我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
- 当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能
客户端在访问时会先把请求发到nginx,http的默认端口是80,而nginx一直监听80端口,nginx收到请求后根据域名解析,映射到不同路径,实现反向代理。我们在浏览器访问时就不需要再用ip+端口的方式访问而是通过域名的方式,这样就不用暴露ip和端口,肯定更加安全。在架构上可以实现前后端的分离。