• Nginx 安装 和 特性介绍


    一:nginx 环境搭建

    官方文档

    http://nginx.org/en/docs/http/ngx_http_core_module.html#var_args

    四项确认

    • 确认系统网络可通行
    • 确认yum可用
    • 确认关闭iptables规则
    • 确认停用selinux

    查看iptables规则

    iptables -L
    

     

    关闭iptables规则

    iptables -F
    

     

    获得当前selinux状态

    getenforce
    

     

    关闭selinux

    setenforce 0
    

     关闭防火墙

    # 关闭防火墙
    systemctl stop firewalld.service
    # 设置开机不起动
    systemctl disable firewalld.service 
    

      

    两项依赖安装  

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

    一次初始化,初始化目录是以后我们放对应的文件代码

    • app:代码目录
    • download:下载的源码包等
    • logs:自定义日志
    • work:一些shell脚本
    • backup:默认配置文件的备份
    cd /opt
    mkdir app download logs work backup 
    

      

    安装过程

    第一步:添加Nginx到YUM源

    添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    

    第二步:安装
    在CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx  

    yum install -y nginx
    

    第三步:启动Nginx

    刚安装的Nginx不会自行启动。运行Nginx

    systemctl start nginx.service
    # 设置开机自启
    systemctl enable nginx.service

    如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面

    Nginx的特性-实现优点

     原因一:IO多路复用epoll

     什么是IO复用?

     

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

     原因二:轻量级

     功能模块少:

    源代码里只有核心代码,其他代码以插件形式安装

    代码模块化:

    适合二次改进

    原因三:CPU亲和(affinity)

    nginx正是利用到了cpu的亲和来提高并发处理能力以及减少不必要的cpu损耗。

    1.什么是CPU亲和

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

    2.为什么需要CPU亲和

    nginx作为接入层的中间件,nginx通过多个work进程进行处理。
    假设我们主机是两个CPU,每个有四个核心,我们把CPU的八个进程分别绑定到不同的CPU上(也就是不同的work分配到不同的核心上)。如果有多个CPU利用自带的CPU切换,会造成性能损失。利用这种CPU的亲
    和绑定,就能减少切换的损耗。
     
    原因四:sendfile

     ginx采用sendfile机制处理静态文件,因此效率很高。

     

    上图是传统的http服务,当我们访问一个文件时,会先经过内核空间,再经过用户空间,传给socket,最后通过response返回给用户。该过程需要多次与用户空间进行切换,但是静态文件其实不需要与用户空间进行过多的逻辑处理。直接可以通过内核空间传输。

     

    sendfile机制只通过内核空间,将文件传给socket,最终响应给用户。

    因此nginx在处理CDN和动静分离服务时有很大优势。

  • 相关阅读:
    EF单实对应多表
    阻止保存要求重新创建表的更改
    Jenkins 修改主目录正解 workspace
    JNLP文件具体说明编辑
    Jenkins新建节点,启动方式没有“通过Java Web启动代理”选项怎么办?
    Entity Framework:“无法加载指定的元数据资源
    Java环境路径配置--转载
    趣谈StateServer在Web Garden,Web Farm下的使用
    【译文】漫谈ASP.NET中的Session
    好记心不如烂笔头之JQuery学习,第四章
  • 原文地址:https://www.cnblogs.com/crazymagic/p/11006937.html
Copyright © 2020-2023  润新知