1、Nginx
介绍
Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好
nginx 专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告 nginx 能支持高达 50000 个并发连接数
1.1、代理
正向代理:局域网中的电脑用户想要直接访问网络是不可行的,只能通过代理服务器来访问,这种代理服务就被称为正向代理。
反向代理:客户端无法感知代理,因为客户端访问网络不需要配置,只要把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
1.2、负载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行狡猾,服务器处理完毕之后,再将结果返回给客户端
普通请求和响应过程
但是随着信息数量增长,访问量和数据量飞速增长,普通架构无法满足现在的需求
我们可以增加服务器的数量,构建集群,将请求分发到各个服务器上,将原来请求集中到单个服务器的情况改为请求分发到多个服务器,也就是我们说的负载均衡
图解负载均衡
假设有 15 个请求发送到代理服务器,那么由代理服务器根据服务器数量,平均分配,每个服务器处理 5 个请求,这个过程就叫做负载均衡
1.3、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析的速度,降低由单个服务器的压力
2、nginx常用命令
查看版本
./nginx -v
启动
./nginx
关闭
./nginx -s stop
./nginx -s quit
重新加载nginx配置
./nginx -s reload
3、nginx的配置文件
配置文件分三部分组成
全局块
从配置文件开始到 events 块之间,主要是设置一些影响 nginx 服务器整体运行的配置指令
并发处理服务的配置,值越大,可以支持的并发处理量越多,但是会受到硬件、软件等设备的制约
#user nobody;
worker_processes 1;
events 块
影响 nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 workprocess 下的网络连接进行序列化,是否允许同时接收多个网络连接等等
支持的最大连接数
events {
worker_connections 1024;
}
http块
诸如反向代理和负载均衡都在此配置
location 指令说明
- 该语法用来匹配 url,语法如下
location\[ = | ~ | ~\* | ^~\] url{
}
- =: 用于不含正则表达式的 url 前,要求字符串与 url 严格匹配,匹配成功就停止向下搜索并处理请求
- ~:用于表示 url 包含正则表达式,并且区分大小写。
- ~*:用于表示 url 包含正则表达式,并且不区分大瞎写
- ^~:用于不含正则表达式的 url 前,要求 ngin 服务器找到表示 url 和字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再匹配
- 如果有 url 包含正则表达式,不需要有~ 开头标识
实例
server {
listen 8001;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://localhost:8090/;
}
}