Nginx之web服务器
Nginx的介绍
Nginx是由俄罗斯的Igor Sysoev使用C语言开发的轻量级、高性能、开源、跨平台的Web服务器。
Nginx使用基于事件驱动的架构能够并发处理百万级的TCP连接,高模块化的设计和自由的许可证使得扩展Nginx功能的第三方模块层出不穷,而且优秀的设计带来了极佳的稳定性,因此其作为Web服务器被广泛应用到大流量的网站上,包括腾讯、新浪、网易、淘宝等访问量巨大的网站。
Nginx是Web服务器,或叫做WWW(World Wide Web)服务器,相应具备Web服务器的基本功能:基于REST架构风格,已统一资源描述符(URI)或统一资源定位符(URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。
Nginx的优点
1、更快(请求更快响应)
2、高扩展性(设计极具扩展性,完全由多个不同功能、不同层次、不同类型且耦合度极低的模块组成)
3、高可靠性(高可用性来自于其核心框架代码的优秀设计、模块设计的简单性;官方提供的常用模块都非常稳定,每个worker进程相对独立)
4、低内存消耗(一万个非常活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是支持高并发连接的基础)
5、单机支持10万以上的并发连接
6、热部署(master管理进程与workr工作进程的分离设计,是的Nginx能够提供热部署的功能,即可以在7*24h不间断服务的前提下,升级Nginx的可执行文件)
7、最自由的BSD许可协议(这是Nginx可以快速发展的的强大动力)
使用Nginx的必备
1、GCC编译器,用来编译C语言程序
#yum install -y gcc
2、PCRE库,Perl兼容正则表达式,在配置文件nginx.conf里使用正则表达式用到
#yum install -y pcre pcre-devel
3、zlib库,用于对HTTP包的内容做gzip格式压缩
#yum install -y zlib zlib-devel #zlib是直接使用的库,zlib-devel是二次开发使用的库
4、Openssl开发库,服务器需要在更安全的SSL协议上传输HTTP
#yum install -y openssl openssl-devel
磁盘目录
1、Nginx源代码存放路径:自定义
2、Nginx编译阶段产生的中间文件存放路径:与源代码存放路径相同
3、部署目录:存放实际Nginx服务器运行期间所需要的二进制文件、配置文件等。默认情况下:/usr/local/nginx
4、日志文件存放目录:日志文件通常会比较大,需预先安排一个拥有更大的磁盘空间目录。
Linux内核参数的优化
修改/etc/sysctl.conf来更改内核参数
fs.file-max=999999
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_keepalive_time=600
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_max_tw_buckets=5000
net.ipv4.ip_local_port_rangr=1024 61000
net.ipv4.tcp_reme=4096 32768 261246
net.ipv4.tcp_wmem=4096 32768 261246
net.core.netdev_max_backlog=8096
net.core.reme_default=262144
net.core.wmem_default=262144
net.core.reme_max=2697152
net.core.weme_max=2697152
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn.backlog=1024
#执行sysctl-p命令,使其生效
获取Nginx源码
官网:http://nginx.org/en/download.html获取源码包 将下载的nginx-1.0.14.tar.gz的源码压缩包放置到准备好的Nginx源代码目录中,然后解压 tar -zxvf nginx-1.0-14.tar.gz
编译安装Nginx
#./configure
#make
#make install