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:管理缓存对象

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

二、全局配置段常见的配置指令:

      分类:

            正常运行必备的配置

            优化性能相关的配置

            用于调试及定位问题相关的配置

            事件驱动相关的配置

      1、正常运行必备的配置:

           打开Nginx朱配置文件/etc/nginx/nginx.conf看到全局配置段

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

           (1)user user [group];

                   定义用户和组工作进程使用的凭证。如果省略组,那么所属组为用户基本组。

           (2)pid /PATH/TO/PID_FILE;

                  指定存储nginx主进程进程号码的文件路径;

           (3)include file | mask;

                   指明包含进来的其它配置文件片断;

           (4)load_module file;1.10版本以后的可以使用DSO机制

                   指明要装载的动态模块;

                   查看已存在的模块

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

         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在linux系统应用详解之一基础介绍和全局配置

                 语法检查和重载配置文件

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

                 查看nginxworker进程及所绑定的cpunice

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

                可以看到一共4worker进程,nice值为-8 分别绑定在4CPU

            实验二:

         自动获取worker进程数量和自动绑定CPU

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

               语法检查和重载配置文件

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

              查看nginxworker进程及所绑定的cpu

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

              对比实验一,可以看到功能生效情况一致,只不过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;

                   指明并发连接请求的处理方法;(有两种epollselect(它限定1024

                   use epoll;

            (3)accept_mutex on | off;

                   处理新的连接请求的方法;on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程;

       基本的全局配置如下图:

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

原创文章,作者:zq,如若转载,请注明出处:http://www.178linux.com/78194

(0)
zqzq
上一篇 2017-06-19 08:34
下一篇 2017-06-19 10:55

相关推荐

  • Linux系统启动流程初识

    centos系统启动流程 本篇仅仅讲解centos5和6 centos7并不适用 Linux系统的组成部分:内核+根文件系统 内核功能: 进程管理 内存管理 网络管理 驱动程序 文件系统 安全功能 有以下目录结构的文件系统可以被识别为根文件系统,但根文件系统本身不存在 rootfs:/bin/ /sbin /etc/ /sys/…

    Linux干货 2016-09-11
  • centos6的启动流程和grub实验

    一.centos的启动流程         post–mbr grub 1stage–stage1.5–stage 2 /boot/grub—/boot/grub/grub.conf —kernel /vmlinuz.XXX root=— /boo…

    2017-07-08
  • Bash Shell编程初学基础篇之二

    Bash Shell编程初学基础篇之二    时间如白驹过隙,一晃过去了几周,一切的计划都没有变化快。当你制定计划实施时,在这期间却会发生许多打乱我们计划的事情,但是我们还是要坚持下去,胜利是属于坚持到最后的人!实践出真理,中级基本结束了,需要回过头了好好总结一下了。心中总有好多话想找个同行唠唠;不废话了,估计大家都烦了!总有一天,你会成…

    Linux干货 2015-05-11
  • 0803linux基础小记

    让普通用户无法登录: centos 6  touch /etc/nologin echo "wating" > /etc/nologin 普通用户登录时不能进入系统,有提示信息 centos7  touch /etc/nologin 或touch /run/nologin  chage -l …

    Linux干货 2016-08-05
  • nginx

    1.Nginx的程序架构:        master/worker            一个master进程:     &nb…

    2017-06-19
  • yum 仓库

    Yum 仓库     yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题。本地源比如说光盘里面一般会附带一些软件,这个时候就可以把光盘当成本地源来安装软件。网络源比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装。   yum 仓库 &n…

    2017-06-24