nigix基础知识
在使用nigix时有一些疑惑,结合一些博客对nigix的一些基础知识进行总结
一,作为 web 服务器,nigix 与 tomcat 的区别
- nigix 是一款开源的HTTP 服务器(邮件代理服务器,通用 TCP 代理服务器等)软件,其本质上是一种运行在服务器上,绑定服务器的 IP 地址并监听一个 tcp 端口来接受并处理 HTTP 请求
- HttpServer (Java HTTP Server )也是
- HTTP 协议返回的文本文件的内容是固定的,即 nigix 本身不支持动态页面(jsp 等)
- Tomcat 与之相比,能够动态的生成资源并返回到客户端,即处理动态资源。如果想要使用 java 程序来动态生成资源内容,HTTP 服务器很难做到。
- servlet 让 java 程序也具有处理 HTTP 请求并返回内容的能力
- tomcat 运行在 JVM 之上,和 HTTP 服务器一样,同时还有管理 servlet 生命周期,生成 HttpServletResponse 对象并传递给 servlet 处理等工程
- 他们通常一起使用
- 动静资源分离 运用 nigix 的反向代理功能分发请求,动态资源交给 tomcat,静态资源(如图片,视频,CSS,JS 文件等)由 nigix 直接返回到浏览器。即大部分情况下的前端部署 nigix,后端部署 tomcat
- 负载均衡 当业务压力增大时,需要多个 tomcat 实例,nigix 的负载均衡可以把请求通过算法分发到各个不用的实例处理。
二,什么是 nigix
1. nigix 是什么
Nginx 因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致认为它是 Apache2.2 + mod_proxy_balancer 的轻量级代替者,不仅因为响应静态页面的速度非常快,而且它的模块数量是 Apache 的 2/3。对 proxy 和 rewrite 模块的支持很彻底,还支持 mod_fcgi、ssl、vhosts ,适合用做 mongrel clusters 前端 HTTP 响应
2. nigix 作用与优点
- 静态服务器(图片,视频服务),另个 lighttpd。并发几万,html,js,css,flv,jpg,gif 等。
- 动态服务,nginx—fastcgi 方式运行 PHP,jsp。(PHP 并发约 500-1500,MySQL 并发约 300-1500)。
- 反向代理,负载均衡。日 pv2000W 以下,都可直接用 nginx 做代理。
- 缓存服务。类似 SQUID,VARNISH。
三,相关概念
1. 代理
给某个对象提供一个代理对象,并由代理对象控制原对象的引用。
图片引自 https://www.cnblogs.com/ysocean/p/9392908.html
1.1 正向代理
- 如:VPN
- 正向代理服务器位于客户端和服务器之间,为了服务器获取数据客户端需要向代理服务器发送一个请求,并指定目标服务器,代理服务器讲目标服务器返回的数据转交给客户端。
1.2 反向代理
- 反向代理服务器
- 客户端将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露了代理服务器的地址而隐藏了真实服务器的 IP 地址。
2 代理实例
通过代理服务器统一前后端的域名,防止cookie丢失,在request中可以操作cookie。前后端统一通过nigix代理,对nigix的conf文件进行配置。
location / {
proxy_pass http://127.0.0.1:4200/;
}
location /api/ {
proxy_pass http://127.0.0.1:8088/api/;
proxy_cookie_path / /api;
}
图片引自 https://www.cnblogs.com/ysocean/p/9392908.html
参考 :
https://www.zhihu.com/question/32212996
https://www.cnblogs.com/ysocean/p/9392908.html