内容简介:nginx在linux系统应用详解之一基础介绍和全局配置
一、nginx简介
1、特点:
(1)nginx服务器既可以作为HTTP服务器,也可以作为反向代理服务器,还可以作为邮件服务器;
(2)能够快速响应静态页面的请求;
(3) 支持 FastCGI、SSl、VirtualHost、URLRewirte、HTTP Basic Auth 、Gzip等大量使用功能;并且支持共多的第三方功能模块的扩展
2、nginx三类基础功能介绍
(1)作为HTTP服务器
A、处理静态文件(如HTML静态网页);处理索引文件以及支持自动索引
B、支持HTTP下的安全套接层协议SSL
C、支持基于IP和servername的虚拟主机设置
D、支持重新加载配置以及在线升级时,不用中断正在处理的请求
E、提供3XX-5XX错误代码的重定向功能
F、提供远程FastCGI服务
G、支持高并发链接
、、、众多功能
(2)反向代理服务器
反向代理是nginx服务器作为web服务器的主要功能之一
在提供反向代理服务方面,nginx服务器转发前端请求性能稳定,并且后端转发与业务配置相互分离,配置相当灵活
它还可以做到负载均衡,解决网络负载,提高web服务性能。
(3)支持邮件代理服务
支持IMAP和POP3认证
3、Nginx的程序架构:
master/worker
一个 master 进程: 负载加载和分析配置文件、管理worker进程、平滑升级
一个或多个 worker 进程: 处理并响应用户请求
缓存相关的进程:
cache loader :载入缓存对象
cache manager :管理缓存对象
二、全局 配置段常见的配置指令:
分类:
正常运行必备的配置
优化性能相关的配置
用于调试及定位问题相关的配置
事件驱动相关的配置
1、正常运行必备的配置:
打开Nginx朱配置文件/etc/nginx/nginx.conf看到全局配置段
(1)user user [group];
定义用户和组工作进程使用的凭证。如果省略组,那么所属组为用户基本组。
(2) pid /PATH/TO/PID_FILE;
指定存储 nginx 主进程进程号码的文件路径;
(3) include file | mask;
指明包含进来的其它配置文件片断;
(4) load_module file; ( 1.10 版本以后的可以使用 DSO 机制 )
指明要装载的动态模块;
查看已存在的模块
2、性能优化相关的配置:
(1) worker_processes number | auto;
worker 进程的数量;通常应该等于小于当前主机的 cpu 的物理核心数;
auto :根据当前主机物理 CPU 核心数, 自动设置work_proceeses数量
(2)worker_cpu_affinity auto [cpumask];
将每一个work_processes进程绑定在一个CPU上
注意:如果不绑定即不启用此项功能,那么 worker 进程在那个 CPU 上运行, 不确定的,有可能造成在同一个运行服务时间内一个CPU上运行多个 worker进程,而有的CPU上运行一个worker进程
(3) worker_priority number;
指定 worker 进程的 nice 值,设定 worker 进程优先级; [-20,20]
(4)worker_rlimit_nofile number;
worker 进程所能够打开的文件数量上限(默认为1024);
一个 worker 进程可以 1024 个并发,它就可以打开 1024 个套接字文件(不包 括其 它文件),
(5) worker_connections number;
单个 worker 进程所能处理的最大请求数量
实验一:
手动指定 worker 进程数量和手动绑定 CPU
指定 worker 进程优先级为 -8
指定 worer 进程最大能打开的文件数量 6000 个(注意:此值要大于等于 worker 进程 量和单个 worker 进程所能处理的 请求数量的乘积)
语法检查和重载配置文件
查看 nginx 的 worker 进程及所绑定的 cpu 和 nice 值
可以看到 一共 4 个 worker 进程, nice 值为 -8 分别绑定在 4 个 CPU 上
实验二:
自动获取 worker 进程数量和自动绑定 CPU
语法检查和重载配置文件
查看 nginx 的 worker 进程及所绑定的 cpu
对比实验一,可以看到功能生效情况一致,只不过worker进程的绑定位置改变
3、调试、定位问题:
(1)daemon on|off;
是否以守护进程方式运行 Nignx ;
(2)master_process on|off;(主要用于开发测试)
是否以 master/worker 模型运行 nginx ;默认为 on ;
(3) error_log file [level]; ( 它不是用 rsyslog 管理的。是自己本身的功能进行自我管理 )
4、事件驱动相关的配置:
events {
…
}
(1)worker_connections number;
每个 worker 进程所能够打开的最大并发连接数数量;
(2)use method;
指明并发连接请求的处理方法;( 有两种 epoll 和 select (它限定 1024 ) )
use epoll;
(3)accept_mutex on | off;
处理新的连接请求的方法; on 意味着由各 worker 轮流处理新请求, Off 意味着每 个新请求的到达都会通知所有的worker进程;
基本的全局配置如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 一文详解 OceanBase 2.0 的“全局索引”功能
- 干货:详解HTML5中常见的五大全局属性
- 微服务之服务治理:Envoy 全局 gRPC 限速服务 lyft/ratelimit 详解
- 详解MySQL数据库5层权限--全局、数据库层、表层、列层、子程序层
- 全局变量,静态全局变量,局部变量,静态局部变量
- Thrift RPC 系列教程(2)——全局变量&全局常量
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
应用Rails进行敏捷Web开发
Dave Thomas, David Hansson等 / 林芷薰 / 电子工业出版社 / 2006-7 / 65.00元
这是第一本关于Ruby on Rails的著作。 全书主要内容分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站” 示例。在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分。尤为值得一提的是本部分的后几章......一起来看看 《应用Rails进行敏捷Web开发》 这本书的介绍吧!