Nginx简介
当用户小的时候,低并发的情况下,一个jar包启动就够了,然后tomcat返回内容给用户
但慢慢随着用户越来越多,并发加大,这时候一个服务器就满足不了需求
所有我们横向扩展,增加服务器。这时候几个项目启动不同的服务器,需要一个代理服务器来帮我们转发和处理请求
代理服务器可以接收用户请求,然后将请求按照规则转发到不同服务器。这个过程用户不知道,而且我们希望可以按照服务器性能提供不同权重选择。所以用Nginx
什么是Nginx
Nginx是高性能HTTP和反向代理web服务器。
特点
- 占内存少
- 并发能力强,能支持50000并发连接数响应
- 能做到不间断运行,运行几个月都不需要重启
Nginx作用
HTTP代理,反向代理
正向代理:
代理客户端的(本机上装的),我们访问外网需要vpn 他会代理我们访问外网 我们是不知道的
反向代理:
代理服务器端的,我们访问百度的时候,总是输www.baidu.com
但是实际上百度后面有很多服务器(深圳)(上海)这些,就是反向代理来转发的
Nginx负载均衡
Nginx提供负载均衡策略有两种:内置策略和扩充策略。内置策略为轮询、加权轮询,Ip hash。扩展策略,就天马行空
轮询
访问服务器的时候依次循环
加权轮询
大量请求走权重高的服务器,少量走权重低的服务器,性能最大化
iphash
Nginx提供的默认的算法iphash,通过请求ip进行hash计算,保证固定ip永远只能打到某一个服务器上,保证session不共享的问题
但这样性能不是很好,如果那台服务器挂了session也消失了,所有我们通常用redis来做
动静分离
开发中,有些请求不需要经过后台处理(静态资源html、css、js、图片)让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开,动静资源拆分后,可以根据静态资源的特点将其做缓存操作,提高资源响应速度。
目前,通过Nginx大大提高了页面响应速度,优化用户体验
Nginx的基本命令
cd到对应目录下
- ./nginx 启动
- ./nginx -s stop 停止
- ./nginx -s quit 安全退出
- ./nginx -s reload 重新加载配置文件(常用)
- ps aux|grep nginx 查看nginx进程
Nginx的使用
1、启动
启动Nginx,在 nginx 解压目录下打开 cmd,输入命令nginx.exe,回车即可
启动之后,这个命令窗口就不能执行其他命令了,需要执行命令的话,可以在当前目录下重新开一个 cmd
2、配置监听
nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。
当我们修改了 nginx 的配置文件 nginx.conf 时,不需要关闭 nginx 后重新启动 nginx,只需要开另一个cmd执行命令 nginx -s reload 即可让改动生效
3、修改配置文件
nginx.conf 文件,增加反向代理和负载均衡,其中权重其实就是比例,意思为每4个请求中,3个发送给 8080,1个发送给8081,修改完后别忘了 reload 一下,在 nginx 根目录启动 cmd,执行命令nginx -s reload
4、关闭 nginx
需要在 nginx 解压目录下重新打开一个命令行输入nginx -s -stop进行关闭,直接关闭命令行窗口是无法关闭 Nginx 的