1、Nginx简介nginx
nginx是一个轻量级的服务器软件,目前世界排名第三,第一占据大部分的市场份额的是apache,第二的是微软公司的IIS站的比重大约是23%。nginx自开发出来04年公布出来市场份额逐年上升,所拥有的功能是前二者都没有的,并且还能与之互补,因此颇有必要认真研究一番。
web
Nginx是一款web服务器反向代理服务器及电子邮件代理服务器。是在BSD-like协议下发行的。
apache
Nginx最突出的特色就是占有内存少,并发能力强。Nginx采用的是事件驱动结构,使用异步套接字来接受客户的请求,是一种非阻塞结构,不使用单独的线程处理,使用masker来控制worker来进行金城的控制,一个master对应一个或者多个worker,并且每一个worker相应多个请求,很大必定程度上的减小了cpu和内存的消耗!缓存
Nginx 特性:
bash
一、模块化设计,较好的扩展性。不管是Nginx本身带的模块,仍是第三方开发的模块,Nginx都能很好的支持。
服务器
二、高可靠性,Nginx把线程分为主线程master和副线程worker,启动Nginx时候就会先启动master,而后master会生成一个或者多个worker线程去执行命令,并且因为这个模式的出现,Nginx能够实现版本平滑升级,而不用从新启动web服务。Nginx里面有多个master,新出现的master就会升级,正在运行的master不会升级,而会等到它所运行的进程结束,它会自动退出,等到下次启用的时候启用的master就是更新好的新版本master,master下面的worker升级原理也是这样的。
架构
三、较低的内存消耗,相比而言,Nginx有一万个keep-alive链接在Nginx 小号的内存大约为2.5M。归功于Nginx的架构太优秀了。
并发
四、支持热部署、能够实现不停机而更新配置文件、更新日志文件、更新服务器程序版本。负载均衡
Nginx基本功能:异步
提供静态资源的web服务器,能缓存打开的文件,描述符
支持http、smtp pop3协议的反向代理服务器
支持缓存、负载均衡
支持fastCGI(fpm)
支持高度模块化机制,而非DOS机制,过滤zip、ssi及图像大小调整。
支持SSL
Nginx的扩展功能
支持基于名称和IP的虚拟主机
支持keep-alive
支持平滑升级
支持url rewrite(地址重写)
支持使用日志缓冲区提升日志存储功能 ,定制访问日志
支持路径别名
支持速率限制
支持基于IP及用户的访问控制
支持并发数限制
Nginx 1.6.2版本编译安装
从官方网站或者社区中下载源码包并解压到/usr/src目录下 tar xf nginx-1.6.2.tar.gz -C /usr/src
避免编译过程当中发生错误 ,用yum安装Development Tools和Server Platform Development包组
添加Nginx系统组:groupadd -r nginx
添加nginx系统用户:useradd -g nginx -r nginx
cd至源码解压的目录下,而后编译安装
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
若是出现错误大部分缘由就是有些--devel的开发包没有安装,能够根据提示把开发包安装进去。
而后 make && make install
此时的Nginx是开机没有启动的
那么下面介绍让Nginx开机启动
新建文件/etc/rc.d/init.d/nginx,内容以下:
# # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions nx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do
将服务脚本的权限设置为可执行 chomd +x /etc/rc.d/init.d/nginx
将服务加入服务列表中,并设置为开机自启动:chkconfig --add nginx && chkconfig nginx on
测试启动nginx:service nginx start