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