nginx在linux系统应用详解之一基础介绍和全局配置

2017-06-19 15:32:41 邹洋

一、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进程;

基本的全局配置如下图:

相关帖子
用户评论
开源开发学习小组列表