Nginx的用法
一、简介
Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
二、下载及安装
1、下载路径:http://nginx.org/en/download.html
注意:最好下载稳定版本的。
2、重要说明:
-
Nginx软件不要安装到C盘(防止由于权限问题,导致软件无法使用.)
-
安装文件路径不要有中文!!! nginx操作完全没有效果.
3、安装
1)Windows版本
直接解压之后就可以使用。
启动方式
双击nginx.exe或用命令启动
2)Linux版本
1.安装依赖包
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
注意:根据提示安装依赖包
2.上传并解压安装包
//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//上传Linux版的ngnix,然后解压缩
tar -xvf nginx-1.21.6.tar.gz
3.安装nginx
//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.21.6
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install
4.启动nginx
cd /usr/local/nginx/sbin
//启动
./nginx
//停止
./nginx -s stop
//重启
./nginx -s reload
//查看nginx编辑配置文件状态是否成功
./nginx -t
4、测试Nginx是否可用,nginx默认80端口
http://localhost:80
三、Nginx命令
1、Windows 命令
1.启动命令 start nginx
2.重启命令 nginx -s reload
3.关闭命令 nginx -s stop
2、Linux 命令
//查看nginx是否启动
ps -ef|grep nginx
四、反向代理
进入Nginx的安装目录:conf/nginx.conf文件如下:
server {
#nginx默认监听的端口号80
listen 80;
#拦截用户的请求路径
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#反向代理配置 / 代表全部请求
location / {
#root是关键字 代表跳转文件目录
root html;
#index是关键字 默认欢迎页面
index index.html index.htm;
}
}
五、Nginx实现负载均衡
1 轮询策略
策略说明:根据配置文件的顺序,依次访问tomcat服务器.
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://testWindows;
}
}
#定义windows集群
upstream testWindows {
# 8081,8082,8083服务器
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
修改完成之后,重启nginx服务器.
2 权重方式
需求:公司中服务器可能会更新迭代.导致物理设备处理能力不同.如果这时采用轮询的机制,可能会影响用户使用.
#定义windows集群 1.默认 轮询 2.权重
upstream testWindows{
server localhost:8081 weight=6;
server localhost:8082 weight=3;
server localhost:8083 weight=1;
}
3、ip_hash
p_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
upstream testWindows{
ip_hash;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
1.2 Nginx高级属性配置
1.2.1 down属性
说明:有时tomcat服务器可能会发生意外宕机.这时nginx服务器做负载均衡时,如果访问故障机,nginx首先会连接故障机,如果1-3秒连接不通,则访问下一台.
属性作用:标识故障机. nginx以后不再访问该机器.
1.2.2 backup属性
说明:一般配置集群时会添加一些备用机.防止主机宕机之后没有足够的服务器响应用户.导致服务器异常.
触发策略: 当主机遇忙时/主机全部宕机时.backup主机生效.
#定义windows集群 1.默认 轮询 2.权重 3.IPhash
upstream testWindows {
server localhost:8081 down;
server localhost:8082 down;
server localhost:8083 backup;
}
1.2.3 Nginx高可用策略
1.2.3.1 高可用(HA)
为了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主管理器就开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一致。
总结:首先有主从结构,当主机发生了宕机现象,则可以自动的实现故障的迁移.
1.2.3.2 Nginx高可用配置
max_fails=1 :定义最大的失败次数,该服务器连续失败几次,不再访问该服务器.
fail_timeout=60s 定义访问的周期 60秒
#定义windows集群 1.默认 轮询 2.权重 3.IPhash
upstream testWindows {
server localhost:8081 max_fails=1 fail_timeout=60s;
server localhost:8082 max_fails=1 fail_timeout=60s;
server localhost:8083 max_fails=1 fail_timeout=60s;
}
执行过程:
当用户访问nginx时,如果该服务器访问失败,则在指定的周期内,不会再次访问故障机.到了下一个周期会自动的校验,如果依然访问不同,在等下一个周期.
定义超时时间
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;