标题:Nginx学习
学习内容:
1、nginx的相关概述
2、nginx 安装以及简单的命令
3、nginx 配置文件以及如何配置
4、 nginx 高可用
5、nginx原理
内容详情:
1、nginx的相关概述
nginx
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成
反向代理
暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
负载均衡
增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器
动静分离
把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力
2、nginx 安装以及简单的命令
在官网下载,然后我用的是FileZilla传输到linux,然后linux下解压安装就好了
安装nigix之前,先安装这几个依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
官网:http://nginx.org/
简单的命令
查看版本号: ./nginx -v
启动命令:./nginx
关闭命令:./nginx -s stop
重新加载命令: ./nginx -s
查看开放的端口号:firewall-cmd --list-all
设置开放的端口号:
firewall-cmd --add-service=http –permanent
firewall-cmd --add-port=80/tcp --permanent
重启防火墙:firewall-cmd –reload
3、nginx 配置文件以及如何配置
nginx 的配置文件
配置文件中的内容包含三部分内容
(1)全局块:配置服务器整体运行的配置指令
比如 worker_processes 1;处理并发数的配置
(2)events 块:影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数为 1024
(3)http 块:代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
还包含两部分:
http 全局块:http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
server 块: 这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了
节省互联网服务器硬件成本。
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
全局 server 块: 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
location 块: 一个 server 块可以配置多个 location 块。
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例server_name/uri-string),对虚拟主机名称也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。
nginx 配置实例-反向代理
我们监听 80 端口,访问域名为 www.123.com,不加端口号时默认为 80 端口,故访问该域名时会跳转到127.0.0.1:8080 路径上。
还需要在windows的host下配置一下
原理分析
访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081
访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082
location 指令说明
该指令用于匹配 URL。
语法如下:
= :用于不含正则表达式的 URL 前,要求请求字符串与 URL 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
~:用于表示 URL 包含正则表达式,并且区分大小写。
~星: 用于表示 URL包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 URL 前,要求 Nginx 服务器找到标识 URL 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 URL 和请求字符串做匹配。
注意:如果 URL 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
nginx 配置实例-负载均衡
分配方式(策略):
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
第二种 weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
第三种 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
第四种 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
nginx 配置实例-动静分离
http://192.168.17.129/www/a.html
http://192.168.17.129/image/01.jpg
autoindex on 显示那个文件下的目录
4、 nginx 高可用
nginx服务器宕机了的话就不能访问到Tomcat了。所以多搞两台,一台宕机就换另一台,继续访问Tomcat,达到高可用。
5、nginx原理
master-workers 的机制
一个master进程和多个workers进程
优点
可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作
每个 woker 是独立的进程,如果有其中的一个woker 出现问题,其他 woker 独立的, 继续进行争抢,实现请求过程,不会造成服务中断
worker 数和服务器的 cpu 数相等是最为适宜的
发送请求,占用了 woker 的几个连接数?
静态访问无需与Tomact建立连接:2个
动态访问:4个