NGNIX 入门
sbin目录下的命令:
- nginx -h:查看帮助
- nginx -v:查看nginx的版本
- nginx -V:查看版本和nginx的配置选项
- nginx -t:测试配置文件的正确性
- Nginx -T: 测试配置文件,并显示配置文件(这个命令可以快速查看配置文件)
- nginx -q:测试配置文件,但是只显示错误信息
- nginx -s:发送信号,下面详细介绍
- nginx -p:设置前缀
- nginx -c:设置配置文件
- nginx -g:附加配置文件路径
# 平滑重启服务
# nginx -s reload
或者
# kill HUP PID
运维命令
运维命令主要用于对Nginx服务的启动、重启和停止等。Nginx可以接收的信号有:
信号 | 作用 |
---|---|
TERM或INT | 快速停止Nginx服务 |
QUIT | 平缓停止Nginx服务 |
HUP | 使用新的配置文件启动进程,之后平缓停止原有进程,“平滑重启”的功能 |
USR1 | 重新打开日志文件,常用于日志切割 |
USR2 | 使用新版本的Nginx文件启动服务,之后平缓停止原有进程,“平滑升级”的功能 |
WINCH | 平缓停止worker进程,用于Nginx服务器平滑升级 |
反向代理
proxy_pass
server {
listen 81;
server_name localhost;
location / {
proxy_pass http://192.168.2.208:8080/;
}
}
负载均衡
这里面涉及到两个重要的角色分别是"应用集群"和"负载均衡器"。
应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均 衡设备分发的请求,进行处理并返回响应的数据。
负载均衡器: 将用户访问的请求根据对应的负载均衡算法,分发到集群中 的一台服务器进行处理。
- 解决服务器的高并发压力,提高应用程序的处理性能。
- 提供故障转移,实现高可用。
- 通过添加或减少服务器数量,增强网站的可扩展性。
- 在负载均衡器上进行过滤,可以提高系统的安全性。
负载均衡常用的处理方式
方式一:用户手动选择
这种方式比较原始,只要实现的方式就是在网站主页上面提供不同线 路、不同服务器链接方式,让用户来选择自己访问的具体服务器,来实 现负载均衡。
方式二:DNS轮询方式
DNS: 域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域 名与 IP 地址的相互转换。
大多域名注册商都支持对同一个主机名添加多条A记录,这就是DNS轮 询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上, 这样就能完成简单的负载均衡。DNS轮询的成本非常低,在一些不重要 的服务器,被经常使用。
基本使用
- upstream指令
- 该指令是用来定义一组服务器,它们可以是监听不同端口的服务器,服务器可以指定不同 的权重,默认为1。
- server指令
- 该指令用来指定后端服务器的名称和一些参数
upstream myserver {
server 192.168.132.128:81;
server 192.168.132.128:80;
}
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://myserver;
}
}
负载均衡状态
代理服务器在负责均衡调度中的状态有以下几个:
状态 | 概述 |
---|---|
down | 当前的server暂时不参与负载均衡 |
backup | 预留的备份服务器 |
max_fails | 允许请求失败的次数 |
fail_timeout | 经过max_fails失败后, 服务暂停时间 |
max_conns | 限制最大的接收连接数 |
用法:
upstream myserver {
server 192.168.132.128:81 down;
server 192.168.132.128:80;
}
负载均衡策略
算法名称 | 说明 |
---|---|
轮询 | 默认方式 weight 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 依据最少连接方式 |
url_hash | 依据URL分配方式 |
fair | 依据响应时间方式 |
使用:
upstream myserver {
server 192.168.132.128:81 weight=10;
server 192.168.132.128:80 weight=2;
}