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

                 查看nginx的worker进程及所绑定的cpu和nice值

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

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

            实验二:

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

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

               语法检查和重载配置文件

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

              查看nginx的worker进程及所绑定的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;

                   指明并发连接请求的处理方法;(有两种epoll和select(它限定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

相关推荐

  • CentOS系统启动流程——深入了解linux

    CentOS系统启动流程 ·Linux系统的组成部分:内核+根文件系统      内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能              IPC:Inter Pr…

    Linux干货 2016-09-11
  • 初学linux遇到的问题

    1 su uername 显示的是基本格式,不是类似于[root@Centos7 ~]#,看着不知道进入到哪个目录。解决办法:在家目录下使用ls -a命令显示隐藏文件,使用nano .bash_profile命令,在那里编辑PS1=”[\u@\h \W]\\$”保存退出就好了。 疑问:为什么不在/etc/bashrc下更改呢?自答:改…

    Linux干货 2017-07-15
  • N25第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     (1).cat:cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。     2.语法:cat [选项] [文件]…     3.选项: &nbsp…

    Linux干货 2016-12-26
  • 新的旅途

    三月末的北京已经让人感觉有些炎热,这是我第一次来北京。对我而言这是我人生的另一个起点,押上了我所有骄傲承载着我的梦想对未来所有的期望。这是一场豪赌,新的旅途,从今天开始。

    2018-03-26
  • 软件包安装与管理

    通过rpm命令和yum install以及源码编译安装软件

    2017-12-03
  • PHP高效率写法(详解原因)

    1.尽量静态化:    如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。   当然了,这个测试方法需要在十万级以上次执行,效果才明显。   其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静…

    Linux干货 2015-05-28