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
 
posted @ 2021-03-18 09:48  blue星空  阅读(162)  评论(0编辑  收藏  举报