1.什么是nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强, 高达 50,000 个并发连接数的响应 ,事实上nginx的并发能力在同类型的网页服务器中表现较好。
反向代理服务器。
2.为什么使用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许可证
3.Nginx下载安装
nginx它使用c语言编写,通过源码的形式安装nginx.
(1)先安装nginx需要的依赖环境
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel或者
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
(2)下载nginx
(3)把下载的nginx放入linux系统
(4)创建一个目录作为nginx的安装目录
mkdir /usr/soft/nginx
(5)解压nginx源码文件
tar -zxvf nginx-1.18.0.tar.gz
(6)进入解压后的目录
指定nginx安装的目录
(7)编译
make
(8) 安装
make install
(9)查看安装nginx的目录中的内容
(10)启动nginx
sbin/nginx 启动nginx
sbin/nginx -s stop 关闭nginx
sbin/nginx -s reload 重新加载nginx配置
(11)window浏览器就可以访问代理服务器
192.168.214.129:80