Nginx背景和概述
Nginx(发音同 engine x)是一款基于异步框架的轻量级/高性能由C语言的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发,最初供俄国大型 站Rambler.ru及搜寻引擎Rambler使用。
同Apache 一样都是一种WEB 服务器,基于REST 架构风格,以统一资源描述符(Inform Resources ldentifier )URI 或者统一资源定位符(Uniform Resources Locator )URL 作为沟通依据,通HTTP 协议提供各种 络服务。Apache 的发展时期很长。而目是毫无争议的世界第一大服务器,它有着很多优点:稳定、开源、跨平台等等,它出现的时间太长了,它兴起的年代,互联 产业远近比不上现在。所以它被设计为一个重量级的它不支持高并发的服务器,在Apache 上运行数以万计的井发访问,会导致服务器消耗大量内存,操作系统其进行进程或线程间的切换也消耗了大量的CPU 图源,导致HTTP 请求的平均响应速度降低。这些都决定了Apache 不可能成为高性能WEB 服务器,轻量圾高井发服务器Nginx 就应运而生了。
Nginx特点
优点:
缺点:
Nginx安装
安装(Ubuntu为例)
检查效果
服务相关命令
移除相关命令
Nginx配置
相关目录
Windows:
linux:
配置文件
nginx配置详解
主要是全局性的和服务级别的属性配置,常见的主要有以下几种设置:
主要配置server通用的一些配置:
常见样式:
1.listen属性:
作用:定义server监听的ip和port,当ip和port匹配时候才进行下一步匹配。
2.server_name属性:
作用:定义server监听的域名,当域名匹配时候才进行下一步操作。
3.root属性:
作用:定义客户端请求的html文件所在目录路径。表现形式:root /var/www/html;
4.index属性
作用:定义客户端请求时默认返回的文件。表现形式:index index.html index.htm index.nginx-debian.html;
location主要是根据server匹配到的请求路径去处理和响应。 根据请求完整url,获取uri(即:除了域名(IP)、Port和路径参数之外的部分),用于location匹配。
匹配规则:
匹配优先级:精确匹配>location 完整路径>优先匹配>正则匹配>location 部分路径>通用匹配
匹配示例:
location核心动作:响应时按顺序查找file,找到则返回file内容,否则的话进行内部重定向(uri)或返回状态码(code)。
常见示例:
location常见操作:
1)基本属性
2)临时跳转
3)目录列表
1)root VS alias
root 和 alias 所起的作用都是指定响应请求文件所在的路径,只是它们有区别。
root 表示 location 匹配内容的相对路径alias 表示 一个绝对路径。
一般情况下,在location /中配置root,在location /other中配置alias。
效果一:访问
http://localhost/txt/1.txt,nginx找/var/www/txt/1.txt文件效果二:访问
http://localhost/txt/1.txt,nginx找/var/www/txt/txt/1.txt文件
2)关于URL尾部的/有如下注意事项
访问URL尾部的”/”表示目录,没有”/”表示文件,而且文件找不到的话,会发生重定向。
Nginx反向代理
代理是什么?
简单来说,我找一个中间人,代替我去做一件事情,只要他给我结果就可以。代理一般分为两种:正向代理和反向代理。
区别:
1)从用途上来讲
2)从安全性来讲
nginx代理配置说明
示例:
proxy_pass指令设置被代理服务器的地址和被映射的URI,地址可以使用主机名或IP加端口 的形式。
Nginx负载均衡
上一小节我们使用proxy_pass的方式实现了nginx代理请求到后端服务器的效果,随着我们的 站访问量越来越多,一个后端服务器就不现实了,那么接下来如何在访问量日渐增大的情况下,满足线上业务的稳定呢?解决方法就是:负载均衡。
基本配置
示例:
负载均衡策略
Nginx提供的负载均衡策略有两种:
内置策略:nginx自带的算法
扩展策略:各种结合业务场景自定义的算法或者第三方算法
常用算法简介
加权轮训示例:
ip_hash示例:
日志解析
通过对日志文件的分析,可以为 站运营和维护提供相应的数据支持,最常见的场景就是获取客户端的IP,记录用户访问量。
Nginx默认提供了两个日志文件 access.log和error.log。
1)基本配置
2)默认日志格式
自定义日志
1)设置日志格式
2)使用日志格式
学完以上的配置,你就基本上可以使用Nginx配置一个简单的比如博客 站,自己买一个服务器然后安装Nginx配置一下文件,把你的博客文件放到指定目录下,然后访问你服务器对应的地址和端口就可以轻松的看到你的博客啦,快去尝试吧!
当然,Nginx用在大厂上面是需要更多的配置的,以满足高并发下的需求。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!