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
下一篇 2017-06-19

相关推荐

  • 计算机组成及功能简介

    计算机(computer)       当今它已经走进千家万户,应用在各个领域,没有用过计算机的朋友应该很少了吧?但是,你真正了解计算机是什么吗?(我也是刚刚了解的,(*^__^*)嘻嘻……)那么,接下来,让我们一起探究一下它的具体构造吧!       所谓的计算机就是…

    Linux干货 2016-10-25
  • Linux入门之文本处理三剑客之grep

    Linux入门之文本处理三剑客之grep  文本处理工具:  grep,sed(流编辑器),awk    grep简述及特点 简介:全局搜索正则表达式出来的行并打印 (Global search REgular expression and Print out  the line),一种按照特定模式(patt…

    Linux干货 2016-08-07
  • 【招聘需求】高级运维工程师/上海虹口区/待遇20k左右

    上海虹口区/待遇20k左右 有意向者发简历至@管家邮箱 邮件名是:[求职]Net-姓名-花名-工作年限 岗位职责:1、降低技术壁垒,建设运维工具、运维平台,实现运维自动化,包括 运维自动化、配置管理中心等。2、具备前瞻性,带领运维技术团队完成业务支撑,负责定位、分析、跟踪和相协调处理重大事故,使之对业务影响降至最低。3、技术支持、培训、知识库建设。4、运维接…

    Linux干货 2015-03-12
  • 图解Man

    个人浅见 欢迎指正

    Linux干货 2016-10-18
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 # who|cut -d' ' -f1|sort|uniq # root 2、取出最后登录到当前系统的用户的相关信息。 # last|head -n 1 # …

    Linux干货 2016-08-29
  • 运维自动化之系统安装

    自动化安装系统,cobbler的安装使用

    Linux干货 2018-01-15