Nginx
Nginx简介
1. 什么是nginx
Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,专为性能优化而开发。
2. 反向代理
客户端对于代理是无感知的,不需要做任何配置,只需要客户端将请求发送到反向代理服务器,由代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务服务器,暴露的是代理服务器的地址,隐藏了真实服务器IP地址。
3. 负载均衡
负载均衡是高可用网络基础架构的关键组件,通常用于将请求分发到多个服务器来提高服务的性能和可靠性。
4. 动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
Nginx相关命令
1. 防火墙命令
- 查看开放的端口号
firewall-cmd --list-all
- 设置开放的端口号
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
- 重启防火墙
firewall-cmd --reload
2. Nginx操作常用的命令
- 当前版本号
./nginx -v
- 停止nginx
./nginx -s stop
- 热加载nginx
./nginx -s reload
3.配置文件
-
全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。
worker_process的值越大,表示可以支持的并发量越大,但也会受硬件、软件等制约 -
events块
events块涉及的指令主要影响Nginx服务器与用户的网络连接,是否允许同时接收多个网络连接,选取哪种时间驱动模型来处理连接请求,每个worker process可以同时支持的最大连接数
比如worker_connections表示可以支持的最大连接数 -
http块
-
(1)http全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单连接请求数上限等 -
(2)server块
location 指令说明
该指令用于匹配URL。语法如下:
-
location [ = | ~ | ~* | ^~] uri {
}
- =: 用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示uri包含正则表达式,并且区分大小写
- ~*:用于表示uri包含正则表达式,并且不区分大小写
- ^~:用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串匹配
4. Nginx负载均衡策略
-
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 -
weight
weight代表权重默认为1,权重越高被分配的客户端越多 -
ip_hash
每个请求按访问ip的hash结果分配,这样每个客户固定访问一个后端服务器 -
fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配