Nginx高性能WEB服务器系列v1Word下载.doc
《Nginx高性能WEB服务器系列v1Word下载.doc》由会员分享,可在线阅读,更多相关《Nginx高性能WEB服务器系列v1Word下载.doc(78页珍藏版)》请在冰豆网上搜索。
17.Nginx构建安全站点HTTPS架构 58
Ø
加载SSL支持的Nginx并使用私钥时去除口令:
61
18.Nginx均衡TCP协议服务器案例 63
19.构建企业级Nginx+Keepalived集群架构 65
20.企业Nginx+Keepalived双主架构案例实战 72
1.Nginx入门简介
WEB服务器也称为WWW(WORLDWIDEWEB)服务器,主要功能是提供网上信息浏览服务。
WWW是
Internet的多媒体信息查询工具,是Internet上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。
正是因为有了WWW工具,才使得近年来Internet迅速发展,且用户数量飞速增长。
Nginx("
enginex"
)是一个高性能的HTTP和
反向代理
服务器,也是一个IMAP/POP3/SMTP
代理服务器。
Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。
据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。
目前互联网主流公司360、百度、新浪、腾讯、阿里等,目前中国互联网企业70%以上公司都在使用nginx作为自己的web服务器。
Nginx特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个locationblock(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx相对于Apache优点:
1)高并发响应性能非常好,官方Nginx处理静态文件并发5w/s
2)反向代理性能非常强。
(可用于负载均衡)
3)内存和cpu占用率低。
(为Apache的1/5-1/10)
4)对后端服务有健康检查功能。
5)支持PHPcgi方式和fastcgi方式。
6)配置代码简洁且容易上手。
2.Nginx工作原理及安装配置
Nginx的模块从结构上分为核心模块、基础模块和第三方模块:
核心模块:
HTTP模块、EVENT模块和MAIL模块
基础模块:
HTTPAccess模块、HTTPFastCGI模块、HTTPProxy模块和HTTPRewrite模块,
第三方模块:
HTTPUpstreamRequestHash模块、Notice模块和HTTPAccessKey模块。
Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是linux内核2.6以后才出现的。
Nginx采用epoll模型,异步非阻塞,而Apache采用的是select模型:
Select特点:
select选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。
epoll的特点:
epoll对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高。
接下来正式安装Nginx,首先需要安装pcre库。
#安装pcre支持rewrite库,也可以安装源码,注*安装源码时,指定pcre路径为解压
源码的路径,而不是编译后的路径,否则会报错
(make[1]:
***
[/usr/local/pcre/Makefile]
Error
127
错误)
yuminstallpcre-develpcre-y
#下载Nginx源码包
cd/usr/src
wget-chttp:
//nginx.org/download/nginx-1.6.2.tar.gz
#解压Nginx源码包
tar-xzfnginx-1.6.2.tar.gz
#进入解压目录,然后sed修改Nginx版本信息为WS
cdnginx-1.6.2;
sed-i-e'
s/1.6.2//g'
-e'
s/nginx\//WS/g'
-e
'
s/"
NGINX"
/"
WS"
/g'
src/core/nginx.h
#预编译Nginx
useraddwww;
./configure--user=www--group=www--prefix=/usr/local/nginx--with-
http_stub_status_module--with-http_ssl_module
#.configure预编译成功后,执行make命令进行编译
make
#make执行成功后,执行makeinstall正式安装
makeinstall
#自此Nginx安装完毕
/usr/local/nginx/sbin/nginx-t检查nginx配置文件是否正确,返回OK即正确。
[root@localhost~]#/usr/local/nginx/sbin/nginx-t
nginx:
theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok
configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful
[root@localhost~]#
然后启动nginx,/usr/local/nginx/sbin/nginx回车即可。
查看进程是否已启动:
[root@localhost~]#ps-ef|grepnginx
nobody5381302850May16?
00:
04:
31nginx:
workerprocess
root30285102014?
00:
00nginx:
masterprocess/usr/local/nginx/sbin/nginx
root3226032220012:
34pts/000:
00grepnginx
3.Nginx常用命令管理及升级
查看nginx进程
ps-ef|grepnginx
说明:
nginx的进程由主进程和工作进程组成。
启动nginx
nginx
启动结果显示nginx的主线程和工作线程,工作线程的数量跟nginx.conf中的配置参数worker_processes有关。
平滑启动nginx
kill-HUP`cat/var/run/nginx.pid`
或者
nginx-sreload
其中进程文件路径在配置文件nginx.conf中可以找到。
平滑启动的意思是在不停止nginx的情况下,重启nginx,重新加载配置文件,启动新的工作线程,完美停止旧的工作线程。
完美停止nginx
kill-QUIT`cat/var/run/nginx.pid`
快速停止nginx
kill-TERM`cat/var/run/nginx.pid`
kill-INT`cat/var/run/nginx.pid`
完美停止工作进程(主要用于平滑升级)
kill-WINCH`cat/var/run/nginx.pid`
强制停止nginx
pkill-9nginx
检查对nginx.conf文件的修改是否正确
nginx-t-c/etc/nginx/nginx.conf或者nginx-t
停止nginx的命令
nginx-sstop或者pkillnginx
查看nginx的版本信息
nginx-v
查看完整的nginx的配置信息
nginx-V
Nginx升级方法:
下载所需版本的Nginx
wgethttp:
//www.nginx.org/download/nginx-1.4.2.tar.gz
获取旧版本nginx的configure选项
/usr/local/nginx/sbin/nginx-V
编译新版本的nginx
tar-xvfnginx-1.4.2.tar.gz
cdnginx-1.4.2
./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_stub_status_module--with-http_ssl_module
make
备份旧版本的nginx可执行文件,复制新版本的nginx这行文件
mv/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.old
cpobjs/nginx/usr/local/nginx/sbin/
测试新版本nginx是否正常
/usr/local/nginx/sbin/nginx-t
平滑重启升级nginx
kill–USR2`cat/usr/local/nginx/log/nginx.pid`
旧版本Nginx的pid变为oldbin,这是旧版本和新版本的nginx同时运行,过一段时间等就nginx处理完用户请求后,执行下面操作
从容关闭旧版本的Nginx进程
kill-WINCH`cat/usr/local/nginx/log/nginx.oldbin`
决定是否升级到新版的nginx
kill–HUP`cat/usr/local/nginx/log/nginx.oldbin`##nginx在不重载配置文件启动工作进程
kill–QUIT`cat/usr/local/n