Nginx学习
nginx的基本概念
- nginx是什么?做什么事情?
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验。
- 反向代理
(1)正向代理:在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网的访问。
(2)反向代理:我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器ip地址。
- 负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
- 动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
nginx安装、常用命令和配置文件
-
在linux系统中安装nginx
-
nginx常用命令
使用nginx操作命令前提条件:必须进入nginx的目录 /usr/local/nginx/sbin/
- 查看nginx版本号
./nginx -v
- 启动nginx、关闭nginx
//查看当前nginx状态
ps -ef | grep nginx
//关闭nginx
./nginx -s stop
//启动nginx
./nginx
- 重新加载nginx
./nginx -s reload
- nginx配置文件
位置:/usr/local/nginx/conf/nginx.conf
配置文件组成:
第一部分 全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
比如:worker_processes auto;//worker_processes值越大,可以支持的并发处理量也越多。
第二部分 events块
events块涉及的指令主要影响nginx服务器与用户的网络连接
比如:worker_connections 10240;//支持的最大连接数
第三部分 http块
nginx服务器配置中最频繁的部分
http块也可以包括http全局块、server块
nginx配置实例 1-反向代理
实现效果:打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转linux系统tomcat主页面。
访问过程分析:
在nginx进行请求转发的配置(反向代理配置)
nginx配置实例 2-负载均衡
实现效果:浏览器地址栏输入地址 192.168.17.129/edu/a.html ,负载均衡效果,平均8080和8081端口中。
nginx配置实例 3-动静结合
nginx高可用
nginx原理
- master和worker
- woker如何进行工作
- 一个master和多个woker有好处
(1)可以使用nginx -s reload 热部署,利于nginx进行热部署操作
(2)每个woker是独立的进程,其中一个出问题,不影响其它woker争抢 - 设置多少个worker合适
worker数和服务器的cpu数相等是最为适宜的 - 连接数 worker_connection
(1)发送请求,占用了woker的几个连接数?2或者4
(2)nginx有一个master,4个worker,每个worker支持最大的连接数据1024,支持的最大并发数是多少?
普通的静态访问最大并发数是:worker_connectionworker_processes/2;
而如果是http作为反向代理来说,最大并发数量应该是worker_connectionsworker_processes/4;