1.什么是Nginx?
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。
2.Nginx的作用?
nginx能做反向代理,那么什么是反向代理呢,举个栗子,我想在本地使用 www.xxx.com 的域名去访问 www.taobao.com。那么这个时候我们就可以通过nginx去实现。
再者,nginx能实现通过统一域名进入各个分支项目,nginx对请求进行分发,使访问请求达到均衡的目的,解决单台服务器压力。
nginx可以解决跨域问题,也可作为隔离层。
3.了解Nginx配置文件的整体结构
a.全局块
该部分配置主要影响全局Nginx:
配置运行参数:Nginx服务器用户组 woeker process数 Nginx进程PID存放路径 错误日志的存放路径配置文件的引入
b.events 块
该部分配置主要影响Nginx 服务器与用户的网络连接: 设置网连接的序列化书否允许同时接收多个网络连接事件驱动模型的选择最大的连接数的配置
c.http块
定义MIMI-Type自定义服务日志允许sendfile方式传输文件连接超时时间单连接请求数上限
d.server块
配置网络监听
1.基于端口的虚拟主机配置
2.基于名称的虚拟主机配置
3.基于ip的虚拟主机配置
e.location块
location配置请求根目录配置更改location 的URL 网络默认首页配置
3.在服务器上安装Nginx
参考 这个
4.给Nginx设置端口号
服务器默认端口号为 80,因为nginx的作用相当于 中间件 用作与管理分配服务器的,给Nginx独立设定一个端口号 8080,这里学习我设定的 端口号是81
5.在Nginx进行配置文件
/usr/local/nginx/conf/nginx.conf 设置虚拟服务器的
建议把注释全部删掉 这样可以更加简洁明了
6.Nginx负载均衡的分配
分为
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
Nginx负载均衡一些基础知识:
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
节点说明:
一、在http节点里添加:
#定义负载均衡设备的 Ip及设备状态
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
二、在需要使用负载的Server节点下添加
proxy_pass http://myServer;
upstream 每个设备的状态:
1、down 表示当前的server暂时不参与负载
2、weight 默认为1.weight越大,负载的权重就越大。
3、max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4、fail_timeout:max_fails 次失败后,暂停的时间。
5、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
7.设置每个虚拟服务器响应的文件
/usr/local/nginx/html/