威哥
学习一门技术,按照威哥的思路,一定得先了解一下这是什么,有什么用,以及怎么用,这样的学习效率才是高效的。
什么是Nginx?
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
为什么使用Nginx?
在传统的Web项目中,并发量小,用户使用的少。
所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。
用户访问<-->Tomcat服务器
而在互联网项目下,因单个tomcat默认并发量有限制。如果请求量过大,会产生如下问题:
Tomcat8 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。
当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。
操作系统对于进程中的线程数有一定的限制:
Windows 每个进程中的线程数不允许超过 2000
Linux 每个进程中的线程数不允许超过 1000
(在 Java 中每开启一个线程需要耗用 1MB 的 JVM 内存空间用于作为线程栈之用。)
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都
会使Tomcat支持更多的并发。
maxThreads="150" 最大并发数
minSpareThreads="10"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
高并发(High Concurrency)
是互联网分布式系统架构设计中必须考虑的因素之一,
它通常是指,通过设计保证系统能够同时并行处理很多请求。
高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per
Second),并发用户数等。
响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
吞吐量:单位时间内处理的请求数量。
QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数:同时承载正常使用系统功能的用户数量。
高可用(High Availability)
通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
(一直都能用 99.9999%)
高性能
是指服务响应时间快,(CPU/处理器/内存)特别是在高并发下响应时间不会急剧增加。
Nginx特点:
高并发、高性能
可扩展性好
高可靠性热部署
BSD许可证
Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
反向代理:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
正向代理:
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
正向代理和反向代理区别?
正向代理,是在客户端的。比如需要访问某些国外网站,我们可能需要购买vpn。并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
四、Nginx下载
官方网址:
├── conf 这是nginx所有配置文件的目录
│ ├── fastcgi.conf fastcgi 相关参数的配置文件
│ ├── fastcgi.conf.default fastcgi.conf 的原始备份
│ ├── fastcgi_params fastcgi的参数文件
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf nginx默认的主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params scgi 相关参数文件
│ ├── scgi_params.default
│ ├── uwsgi_params uwsgi相关参数文件
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp fastcgi临时数据目录
├── html 这是编译安装时nginx的默认站点目录,类似Apache的默
认站点htdocs
│ ├── 50x.html 错误页面优雅替代显示文件,例如:出现502错误时会调用此页
面error_page 500 502 503 504 /50x.html
│ └── index.html 默认的首页文件,index.html\index.asp\index.jsp来做网
站的首页文件
├── logs nginx默认的日志路径,包括错误日志及访问日志
│ ├── access.log nginx的默认访问日志文件,使用tail -f access.log,可以
实时观看网站的用户访问情况信息
│ ├── error.log nginx的错误日志文件,如果nginx出现启动故障可以查看此文
件
│ └── nginx.pid nginx的pid文件,nginx进程启动后,会把所有进程的ID号写
到此文件├── nginx-1.6.3 -> /application/nginx-1.6.3
├── proxy_temp 临时目录
├── sbin 这是nginx命令的目录,如nginx的启动命令nginx
│ ├── nginx Nginx的启动命令nginx
│ └── nginx.old
├── scgi_temp 临时目录
└── uwsgi_temp 临时目录
后台留言获取Nginx全套视频资料,