nginx简介
1什么是nginx
Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强
Nginx专门为性能优化而开发,性能是其最重要的考量,事实上非常注重效率,能经受高负载的考验,有报告称能承受50000的并发连接数
2反向代理
(1)正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
(2)反向代理
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
3负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们说的负载均衡。
4动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
nginx的安装
1用远程连接工具连接linux操作系统
2nginx相关素材(依赖)
(1)安装pcre依赖
- 把安装压缩文件放到linux系统中
- 解压压缩文件 (tar -xvf pcre的包名)
- 进入解压缩目录,执行 ./configure
- 使用 make&&make install(把文件编译 安装)
- 安装后,使用命令,查看版本号,pcre-config —version
(2)安装其他的依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安装nginx
- 把安装压缩文件放到linux系统中
- 解压压缩文件 (tar -xvf nginx的包名)
- 进入解压缩目录,执行 ./configure
- 使用 make&&make install(把文件编译 安装)
安装成功后,在/user/local中多一个nginx的文件夹,里面的sbin中有启动脚本
启动时遇到报错
解决: https://blog.csdn.net/weixin_44297303/article/details/89505398
登录网页无法连接
解决:关闭防火墙
https://blog.csdn.net/baidu_36124158/article/details/90603496
或者修改防火墙规则:
查看开放的端口
firewall-cmd —list-all
设置开放的端口号
firewall-cmd —add-service=http -permanent
sudo firewall-cmd —add-port=80/tcp —permanent重启防火墙
firewall-cmd -reload
nginx操作中常用命令
1使用nginx命令的前提是必须进入 nginx目录
2查看nginx版本号
3启动
(查看当前nginx状态 ps -ef | grep nginx )
4关闭
5重新加载
./nginx -s reload
nginx配置文件
1nginx配置文件位置
/usr/local/nginx/conf/nginx.conf
2nginx配置文件组成
(1)nginx配置文件由三部分组成
第一部分 全局快
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
比如 work_processes 1; work_processes的值越大,可以支持的并发处理量也越多
第二部分 events块
events块主涉及的指令主要影响Nginx服务器和用户网络的连接
比如 worker_connections 1024; 支持的最大连接数 对性能影响较大,实际使用中应灵活配置
第三部分 http块
是nginx服务器配置中最频繁的部分,代理 缓存 和日志定义等绝大多数功能和第三方模块的配置都在这
http块可以包括http全局块、server块
Nginx配置实例—反向代理
1实现效果
(1)打开浏览器,在浏览器中输入www.123.com ,跳转linux系统tomcat主页面中
2准备工作
(1)在linux系统中安装tomcat,使用默认端口8080
- 把安装压缩文件放到linux系统中
- 解压压缩文件 (tar -xvf nginx的包名)
进入tomcat的bin目录,执行./startup.sh启动tomcat服务器
(2)修改端口访问规则
sudo firewall-cmd —add-port=8080/tcp —permanent firewall-cmd -reload
查看开放的端口
firewall-cmd —list-all
(3)在windows系统中通过浏览器访问tomcat
3访问过程的分析
4具体配置
第一步
在windows系统的host文件中进行域名和ip对应关系的配置
添加内容在host文件中: 192.168.159.128 www.123.com
第二步
在nginx进行请求转发的配置(反向代理配置)
5效果测试
Nginx配置实例-反向代理实例2
1实现效果
2准备工作
1准备两个tomcat服务器,一个8080端口 一个8081端口
2创建文件夹和测试页面
3具体配置
1找到nginx配置文件,进行反向代理配置
2开放对外访问的端口号
4最终测试
Nginx配置实例-负载均衡
1实现效果
1浏览器地址栏输入http://192.168.159.128/edu/a.htnl,实现负载均衡效果,将请求平均到8080和8081端口中
2准备工作
1准备两台tomcat服务器,一台8080,一台8081
2 在两台tomcat的webapps目录中,创建名称是edu的文件夹,在edu文件夹中创建页面a.html,同于测试
3在nginx的配置文件中进行负载均衡的配置
4nginx分配服务器的策略
- 轮询(默认):每个请求按时间顺序注意分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
- weight :代表权重,默认为1,权重越高,呗分配的客户越多 指定轮询几率,weight和访问率成正比,用于后端服务器性能不均的情况
- ip_hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
- fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配
Nginx配置示例-动静分离
1什么是动静分离
2准备工作
1在linux中中北静态资源,用于进行访问
3具体配置
1在nginx配置文件中进行配置
4最终测试
1浏览器中输入地址
http://192.168.159.128/image/a.jpg
因为配置文件 autoindex on(列出当前文件夹中的内容)
Nginx配置高可用的集群
1什么是高可用集群
需要两台nginx服务器
需要keeplived
需要虚拟ip
2配置高可用的准备工作
1需要两台服务器
3在两台服务器安装keepalived
1使用yum命令安装 yum install keepalived -y
2安装后,在etc目录里生成目录keepalived。有文件keepalived.conf
4完成高可用配置(主从配置)
1修改/etc/keepalived/keepalived.conf配置文件
2在/use/local/src 添加检测脚本
3启动两台服务器的nginx和keepalived
启动keepalived:systemctl start keepalived.service
Nginx的原理
1maste和worker
2worker如何进行工作的
3一个master和多个worker有什么好处
1可以使用nginx -s reload 热部署
2每个worker是独立的进程,如果有其中的一个出现问题,其他worker是独立的,继续进行争抢,实现请求过程,不会造成服务中断
4设置多少个worker合适
worker数和服务器的cpu数相等时最适宜的
5连接数 worker connection
- 第一个:发送请求,占用worker的几个连接数 2或4个
- 第二个:nginx有一个master,四个worker,每个worker支持的最大连接数据1024,支持的最大并发数时: