1 Nginx入门教程
Nginx是一个轻量级的Web服务器/反向代理服务器和电子邮件(IMAP/POP3)代理服务器,在类似BSD的协议下分发。由俄罗斯程序员IgorSysoev开发,被俄罗斯大型门户网站和搜索引擎Rambler(俄文:)使用。其特点是占用内存少,并发性强。事实上,nginx的并发性在相同类型的web服务器中确实表现良好。
Nginx ('engine x ')是一款高性能的HTTP和反向代理服务器,也是一款IMAP/POP3/SMTP代理服务器。Nginx是由伊戈尔塞索耶夫为漫步者. ru开发的,它是俄罗斯访问量第二大的网站。第一个公开版本0.1.0于2004年10月4日发布。它的源代码以类似BSD的许可证形式发布,以稳定、功能集丰富、配置文件样本多、系统资源消耗低著称。
它已经在包括Yandex、Mail在内的许多俄罗斯高流量网站上使用了很长时间。茹,VKontakte和漫步者。据Netcraft统计,2012年8月,全球最繁忙的网站中,有11.48%使用Nginx作为其服务器或代理服务器。目前主流互联网公司有360、百度、新浪、腾讯、阿里等。目前,超过70%的中国互联网公司正在使用nginx作为自己的网络服务器。Nginx的特点是内存少,并发性强。事实上,Nginx的并发性在相同类型的web服务器中确实表现良好。Nginx由一个内核和多个模块组成,其中内核的设计非常小巧简洁,所做的工作也非常简单。只有配置文件将客户端请求映射到一个位置块(位置是Nginx配置中的一条指令,用于URL匹配),在这个位置配置的每条指令都会启动一个不同的模块来完成相应的工作。
Nginx相对于Apache的优势:
高并发响应性能非常好,官方的Nginx在处理静态文件和并发5w/s反向代理方面有非常强的性能。(可用于负载平衡)内存和cpu使用率低。(Apache的1/5-1/10)具有后端服务的健康检查功能。支持PHP cgi模式和fastcgi模式。代码简单易用。
2. Nginx 工作原理及安装配置
Nginx由一个内核和多个模块组成,其中内核的设计非常小巧简洁,所做的工作也非常简单。只需查找配置文件,将客户端请求映射到一个位置块(位置是Nginx配置中的一条指令,用于URL匹配),在这个位置配置的每条指令都会启动不同的模块来完成相应的工作。
Nginx的模块在结构上分为
核心模块、基础模块和第三方模块:
核心模块:HTTP模块、EVENT模块和MAIL模块
基本模块:HTTP访问模块、HTTP FastCGI模块、HTTP代理模块和HTTP重写模块。
第三方模块:HTTP上游请求哈希模块、通知模块和HTTP访问密钥模块。
Nginx的高并发性得益于其epoll模型。与传统的服务器程序架构不同,epoll直到linux内核2.6之后才出现。Nginx采用epoll模型,异步无阻塞,而Apache采用select模型。
选择特征:选择句柄时,选择遍历所有句柄,也就是说,当句柄有事件响应时,
Select需要遍历所有句柄才能得到哪些句柄有事件通知,所以效率很低。
Epoll的特点:epoll对句柄事件的选择不是遍历,而是事件响应,即句柄事件。
要立即选择出来,不需要遍历整个句柄列表,所以效率很高。
3.Nginx下载安装
1.Nginx下载地址:nginx-1.13.0.tar.gz,下载至:/usr/local/software/pgc-img-caption">
2.Nginx解压安装:
tar -zxvf nginx-1.13.0.tar.gz -C ./
3.Nginx编译
./configure
报错
3.1解决./configure: error: C compiler cc is not found错误:
错误原因:缺少编译环境,安装编译源码所需要的工具和库:
执行命令:yum install gcc gcc-c++ ncurses-devel perl
再次编译:./configure --prefix=/usr/local/nginx
3.2解决./configure: error: the HTTP rewrite module requires the PCRElibrary.错误:
错误原因:缺少HTTP rewrite module模块,禁用或者安装所需要的模块。我们选择安装模块:
执行命令:yum install pcre pcre-devel
3.3解决./configure: error: the HTTP gzip module requires the zliblibrary.错误:
错误原因:缺少HTTP zlib类库,我们选择安装模块:
执行命令:yuminstall zlib gzip zlib-devel
4.编译成功
5.安装Nginx:
安装命令:make & make install
1.2 Nginx启动
1.查看安装目录:cd
conf 存放配置文件
html 网页文件
logs 存放日志
sbin shell启动、停止等脚本
2.启动nginx
查看进程
常见问题:
解决nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)错误:
错误原因:不能绑定80端口,80端口已经被占用。
3.停止nginx,重新加载配置文件
执行命令:kill –INT进程号
启动成功:
重新读取配置文件:
nginx-s reload
4.Nginx信号控制
TERM, INT 快速停止(杀死进程)
QUIT 优雅的关闭进程,即等请求结束后再关闭
HUP 改变配置文件,平滑的重读配置文件
USR1 重读日志,在日志按月/日分割时有用
USR2 平滑的升级
WINCH 优雅关闭旧的进程(配合USR2进行升级)
5.打开浏览器
1.3常用命令
进去nginx的安装目录
进去sbin
常用命令
启动 ./nginx
检查 nginx.conf
配置文件 ./nginx -t
重启 ./nginx -s reload
停止 ./nginx -s stop
1.4 学习Nginx推荐书籍:
《深入剖析Nginx》《实战Nginx:取代Apache的高性能Web服务器》《深入理解Nginx:模块开发与架构解析》《深入理解Nginx:模块开发与架构解析》《决战Nginx技术卷:高性能Web服务器部署与运维》《决战Nginx系统卷:高性能Web服务器详解与运维》为了帮助小伙伴们更好的学习Python,技术学派整理了Python的相关学习视频及学习路线图。
领取方式
关注“小编”后,评论转发文章,私信回复:Python学习