(个人简介略)
今天我们来了解一下Nginx。
虽然Nginx这个东西小巧、轻便,而且广泛存在于各种大小项目之中,但大家都不一定对Nginx有更深的了解。Nginx是什么呢?Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购。Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。
Nginx具有以下几个优点:
•高并发连接 官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。
•内存消耗少 在3万并发连接下,开启10个Nginx 进程仅消耗150M内存(15M*10=150M)。
•配置文件简单 风格简单、通俗易懂。
•成本低廉 Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡硬件设备则需要十多万至几十万人民币。
•支持Rewrite重写规则 能够根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。
•内置的健康检查功能 如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。
•节省带宽 支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。
•稳定性高 用于反向代理,宕机的概率微乎其微。
Nginx有以下几个应用方向:
•运行 PHP、JSP (与FastCGI结合)
•反向代理、负载均衡、规则过滤
•静态HTML页、图片服务器
•与其他新技术的结合应用 (容器与K8S)
好了,我们简单对Nginx做了初识,接下来我们对于Nginx的配置进行一部分的讲解。
•设置工作的进程数(可设置为可用cpu的数量)。
语法: worker_processes number
默认值: 1
上下文: main
•指定错误日志的文件和错误级别。
语法: error_log file [ debug | info | notice | warn | error | crit ]
默认值: ${prefix}/logs/error.log
上下文: http,server,location
•定义一个worker进程可以同时处理的文件数量。
语法: worker_rlimit_nofile limit
默认值: OS默认
上下文: main
•指定事件响应模式。
语法: use type
默认值: 在编译时指定
上下文: events
•设置每个worker进程所能处理的连接数。
语法: worker_connections number
默认值: 1024
上下文: events
•为HTTP服务器提供配置上下文。
语法: http { ... }
默认值: —
上下文: main
•开始设置虚拟主机。
语法: server { ... }
默认值: —
上下文: http
•为某个请求URI(路径)建立配置。
语法: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
默认值: —
上下文: server, location
•定义将要被作为默认页的文件。
语法: index file ...;
默认值: index index.html;
上下文: http, server, location
•为请求设置根目录 。
语法: root path;
默认值: root html;
上下文: http, server, location, if in location
•定义指定路径的替换路径。
语法: alias path;
默认值: —
上下文: location
•设置虚拟主机名。
语法: server_name name ...;
默认值: server_name "";
上下文: server
•设置客户端的长连接在服务器端保持的最长时间。
语法: keepalive_timeout timeout [header_timeout];
默认值: keepalive_timeout 75s;
上下文: http, server, location
•为指令错误定义显示的URI 。
语法: error_page code ... [=[response]] uri;
默认值: —
上下文: http, server, location, if in location
今天的讲解就到这里,接下来请期待《探秘Nginx (二)》讲解更多配置内容。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。