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

相关推荐

  • iptables——linux下的防火墙

    iptables Firewall:隔离工具 Packets Filter Firewall;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件          硬件防火墙:在硬件级别实现部分功…

    Linux干货 2016-10-22
  • 部分基本的文本处理工具

    一、   抽取文本的命令     1、cat     cat [option]… [file]…     常用选项:         -E &nb…

    Linux干货 2016-08-05
  • ngx_http_proxy_module

    ngx_http_proxy_module 1.proxy_pass Syntax: proxy_pass URL; Context: location, if in location, limit_except 这条指令将来是用的相当多的指令。 v  附加1:proxy_pass后面的路径不带uri时,其会将loca…

    2016-10-30
  • RAID5的组建

        RAID5在实际场景中应用最多,RAID5最少使用3块硬盘,3块硬盘中允许1块硬盘损坏,RAID5它的最大特点是可以有一块硬盘做冗余,其使用率是 N-1存储空间(N表示硬盘数量)     首先创建分区,然后转换分区类型,最后保存退出。 注解:虚拟机总共有6块硬盘,我是从第3块硬盘开始做rai…

    Linux干货 2016-02-14
  • 马哥教育网络班19期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥用来连接两个不同的网络间的设备;集线器的作用是把接受的信号放大,从另一个端口再穿法出去,说白了就是延长网络的传输距离;   二层交换机工作在数据链路层,根据源和目的MAC地址进行数据转发;三层交换机就是具有部分路由器功能的交换机,三层交换…

    Linux干货 2016-07-07
  • 系统管理中的三大利刃(htop glances dstat)

    工欲善事情,必先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。 相传一把三尺长的软剑,叫…

    Linux干货 2015-11-18