• nginx中间件


    Nginx简介

    Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。其特点是占有内存少,并发能力强。

    Nginx优势:IO多路复用epoll

    1、什么是IO复用

    它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些描述符有就绪(或者状态改变了)就告诉主动告诉进程哪些描述符已经就绪,这样站在进程的角度,就不需要挨个的查看每个描述符是否就绪。

     2、什么是IO多路复用

    多个描述符的I/O操作都能在一个线程内并发交替的顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用同一个线程。

    参考: http://www.cnblogs.com/zingp/p/6863170.html

    3、IO多路复用epoll

    IO多路复用的实现方式select、poll、epoll

    select方式缺点:

    • 能够监视文件描述符的数量存在最大限制
    • 线性扫描效率低下

    select方式优点:

    • Windows、linux都支持

    epoll方式优点:

    • 没有最大并发连接的限制
    • 效率提升,不是轮询的方式,不会随着FD数目的增加效率下降

    Nginx优势:轻量级

    功能模块少

    代码模块化

    Nginx优势:CPU亲和

    CPU亲和是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss,获得更好的性能。

    Nginx优势:sendfile

    nginx安装

    官方:http://nginx.org/en/linux_packages.html

    1、准备

    yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
    yum -y install wget httpd-tools vim
    

    2、yum源

    vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    

    3、查看

    yum list|grep nginx
    

    4、安装

    yum install nginx -y
    

    5、版本

    nginx -v
    

    nginx安装目录

    rpm -ql nginx

    配置文件

    /etc/logrotate.d/nginx :nginx日志轮转,用于logrotate服务的日志切割

    /etc/nginx/nginx.conf:ngnix主配置文件

    /etc/nginx/conf.d/default.conf:安装后的配置备份文件

    cgi相关配置

    • /etc/nginx/fastcgi_params
    • /etc/nginx/uwsgi_params
    • /etc/nginx/scgi_params

    编码转换映射文件

    • /etc/nginx/koi-utf
    • /etc/nginx/koi-win
    • /etc/nginx/win-utf

    /etc/nginx/mime.types:文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的Content-Type值

    用于配置系统守护进程管理器管理方式(centos7)

    • /usr/lib/systemd/system/nginx-debug.service
    • /usr/lib/systemd/system/nginx.service
    • /etc/sysconfig/nginx
    • /etc/sysconfig/nginx-debug

    nginx模块目录

    • /usr/lib64/nginx/modules
    • /etc/nginx/modules

    nginx服务的启动管理的终端命令

    • /usr/sbin/nginx
    • /usr/sbin/nginx-debug

    nginx的手册和帮助文档

    • /usr/share/doc/nginx-1.12.2
    • /usr/share/doc/nginx-1.12.2/COPYRIGHT
    • /usr/share/man/man8/nginx.8.gz

    /var/cache/nginx:nginx的缓存目录

    /var/log/nginx:nginx日志目录

    ngnix安装编译

    nginx -V
    

    大写V

    编译参数介绍

    • 安装目录或路径

    --prefix=/etc/nginx

    --sbin-path=/usr/sbin/nginx

    --modules-path=/usr/lib64/nginx/modules

    --conf-path=/etc/nginx/nginx.conf

    --error-log-path=/var/log/nginx/error.log

    --http-log-path=/var/log/nginx/access.log

    --pid-path=/var/run/nginx.pid

    --lock-path=/var/run/nginx.lock

    • 执行对应模块时,nginx所保留的临时性文件

    --http-client-body-temp-path=/var/cache/nginx/client_temp

    --http-proxy-temp-path=/var/cache/nginx/proxy_temp

    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp

    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp

    --http-scgi-temp-path=/var/cache/nginx/scgi_temp

    • 设定nginx进程启动的用户和用户组

    --user=nginx

    --group=nginx

    • 设置额外的参数将被添加到CFLAGS变量

    --with-cc-opt

    • 设置附加的参数,链接系统库

    --with-ld-opt

  • 相关阅读:
    偶数求和
    POJ2002Squares
    学习笔记之ulimit
    LeetCode 345. Reverse Vowels of a String
    LeetCode 343. Integer Break
    LeetCode 292. Nim Game
    LeetCode 338. Counting Bits
    LeetCode 344. Reverse String
    [ZZ]良好的编码习惯
    学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
  • 原文地址:https://www.cnblogs.com/shhnwangjian/p/7746575.html
Copyright © 2020-2023  润新知