zoukankan      html  css  js  c++  java
  • Nginx安装(Linux)+ 配置解析

        Nginx下载地址: http://nginx.org/download

    安装Nginx依赖包

    • gcc

              Nginx是用C语言编写的,需要gcc环境编译源码

    ##安装gcc
    yum -y install gcc-c++
    • PCRE

              PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

    ##安装PCRE
    yum install -y pcre pcre-devel
    • zlib

              zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

    ##安装zlib
    yum install -y zlib zlib-devel
    • OpenSSL 
             OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 
            Nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装OpenSSL库。
    ##安装openssl
    yum install -y openssl openssl-devel

    解压zookeeper安装包

    tar -zxvf nginx-1.8.1.tar.gz -C /root/apps/

    创建目录

        用于存放编译后的文件

    mkdir /usr/nginx

    初始化配置

    cd /root/apps/nginx-1.8.1/
    ./configure --prefix=/usr/nginx
    • 报错  ./configure: error: C compiler cc is not found,说明缺少gcc
    • 报错 ./configure: error: the HTTP rewrite module requires the PCRE library, 说明缺少PCRE
    • 报错./configure: error: the HTTP gzip module requires the zlib library., 说明缺少zlib

    编译并安装

    make
    make install

    关闭防火墙

    service iptables stop

    启动Nginx

        注意:没有启动日志输出

    cd /usr/nginx/sbin
    ./nginx

    测试

         在浏览器中输入服务器的地址,回车

    停止服务

    ./nginx -s stop
    刷新
        当修改配置文件/usr/nginx/conf/nginx.conf,需要刷新。无需重启Nginx
    ./nginx -s reload
     

    配置

     
    Nginx在运行时候,至少要加载几个核心模块(http)和一个事件类模块(event)。
     
    配置文件(nginx.config)框架
     
    代码块中的events、http、server、location、upstream等都是块配置项。块配置项可以嵌套,内层块直接继承外层快,例如:server块里的任意配置都是基于http块里的已有配置的。
    // 全局区
    worker_processes 1; // 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数
     
    // 一般是配置nginx连接的特性
    Event {
        worker_connections 1024; // 这是指 一个子进程最大允许连1024个连接
    }
     
    //这是配置http服务器的主要段
    http {
        // 这是虚拟主机段
        Server {
            //定位
            location {
            }
        }
        Server {
        }
    }
    参数优化
    #工作进程数 默认为1
    work_processers CPU数 * 核心数;
    #最大打开连接符
    worker_rlimit_nofile 102400;
    #单个工作进程可以允许同时建立外部连接的数量,默认1024
    worker_connections 65535;
    worker_connections解析
     
    1.connections不是随便设置的,而是与两个指标有重要关联,一是内存,二是操作系统级别的“进程最大可打开文件数”。
    2.内存:每个连接数分别对应一个read_event、一个write_event事件,一个连接数大概占用232字节,2个事件总占用96字节,那么一个连接总共占用328字节,通过数学公式可以算出100000个连接数大概会占用 31M = 100000 * 328 / 1024 / 1024,当然这只是nginx启动时,connections连接数所占用的nginx。
    3.进程最大可打开文件数:进程最大可打开文件数受限于操作系统,可通过 ulimit -n 命令查询,以前是1024,现在是65535,
    nginx提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:worker_rlimit_nofile102400;
     

    附件

    • 详细的配置文件
               提取码:ko0p
     
    更多内容,请访问:http://www.cnblogs.com/BlueStarWei
  • 相关阅读:
    新浪微博OAuth2.0 VS OAuth1.0 主要区别总结
    NSCondition的用法
    iOS $99 刀 开发者证书的申请步骤
    three20 报出 文件 no such file or directory的原因以及解决方案
    three20.bundle以及 sharekit.bundle多语言无法生效的解决方案
    NSThread的使用
    iOS中switchcase的优化用法
    iOS开发中生成随机数方法的选择
    面向对象软件设计原则(五) —— 应用示例
    普通软件项目开发过程规范(四)—— 控制和结束阶段
  • 原文地址:https://www.cnblogs.com/BlueStarWei/p/14553758.html
Copyright © 2011-2022 走看看