Nginx
Nginx 是一款高性能的 Web 和 反向代 理服务器。其特点是占有内存少,并发能力强。
Nginx 专为性能优化而开发,性能是服务器最重要的考量,实现上非常注重效率,能经受高负载的考验。
功能:Nginx 不仅能做反向代理,实现负载均衡;还能可以作正向代理来进行上网等功能。
1.什么是代理服务器?
能支持高达 50,000 个并发连接数。
所谓代理服务器就是位于发起请求的客户端与原始服务器端之间的一台跳板服务器。
正向代理可以隐藏客户端,
反向代理可以隐藏原始服务器。
2.正向代理
用户知道目标服务器地址,但由于网络限制等原因,无法直接访问。这时候需要先连接代理服务器,然后再由代理服务器访问目标服务器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qAW9kglr-1626778982184)(file:///C:\Users\HP\AppData\Roaming\feiq\RichOle\914574151.bmp)]
3.反向代理
反向代理对用户则是不可知的,比如我们访问百度网站,百度的代理服务器对外 的域名为 www.baidu.com ,具体
内部的服务器节点我们不知道,现实中我们通过访问百度的代理服务器后,代理服务器给我们转发请求到他们 N
多的服 务器节点中的一个给我们进行搜索后将结果返回。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIcc7hN8-1626778982188)(file:///C:\Users\HP\AppData\Roaming\feiq\RichOle\1329745092.bmp)]
4.负载均衡
客户端发送多个请求到服务器,服务器处理请求,有些可能要访问数据库,服务 器处理完毕后再将结果返回客户
端。
然后将原先请求单个服务器的情况改为 将请求分发到多个服务器上,将负载分发到多个服务器上.
负载均衡调度算法:
1.轮询:按照时间顺序,将请求逐一分配到不同的后端服务器。
2.加权轮询:可在配置的serve后加权重,权重越高分配概率越大
3.p-hash:每个请求a按访问的ip的hash分配,来自同一 IP 固定访问一个后台服务 器。
4.least_hash :最少链接数,哪个机器连接数少就发分发给哪个机器
5.动静分离
实现动态请求与静态请求分离,实现资源分类(前后端分离)
6.下载及安装
地址:http://nginx.org/en/download.html
安装先以 windows 版本为例
起动cmd 进入到安装目录 nginx 命令起动
启动后访问 http://localhost:80
重载配置文件 nginx -s reload
停止nginx服务 :nginx -s quit / nginx -s stop
nginx 配置文件
… #全局块
events {
#events 块
}
http {
#http 块
… #http 全局块
server {
#server 块
… #server 全局块
location [PATTERN] { #location 块 …}
location [PATTERN] { … }
server{ }… }
1. 全局块:配置影响 nginx 全局的指令。一般有运行 nginx 服务器的用户组, nginx 进程 pid 存放路径,日志存放路径,配置文件引入,允许生成 worker pr ocess 数等。
2. events 块:配置影响 nginx 服务器或与用户的网络连接。有每个进程的最大 连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接, 开启多个网络连接序列化等。
3. http 块:可以嵌套多个 server,配置代理,缓存,日志定义等绝大多数功能 和第三方模块的配置。如文件引入,mime-type 定义,日志自定义,是否使用 s endfile 传输文件,连接超时时间,单连接请求数等。
4. server 块:配置虚拟主机的相关参数,一个 http 中可以有多个 server。
5. location 块:配置请求的路由,以及各种页面的处理情况。
负载均衡配置实例
nginx安装Linux上
1.Linux 安装
需要安装 gcc
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
手动下载.tar.gz 安装包
使用ftp将Windows上下载的安装包上传到 linux 指定目录
解压tar -zxvf 文件包
cd 进入目录
/configure --prefix=/usr/local/nginx
指定安装位置
make
make install
安装成功,启动 nginx
cd /usr/local/nginx/sbin
./nginx
关闭 nginx
./nginx -s quit
重启 nginx
./nginx -s reload
查看 nginx进程
ps -ef|grep nginx