Nginx的知识分享,感兴趣的可以看一下

我干了五年了,我想把我的经验跟大家分享一下,欢迎大家阅读。

  1. Nginx入门简介

  WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

  Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 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由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

  Nginx相对于Apache优点:

  1) 高并发响应性能非常好,官方Nginx处理静态文件并发5w/s

  2) 反向代理性能非常强。(可用于负载均衡)

  3) 内存和cpu占用率低。(为Apache的1/5-1/10)

  4) 对后端服务有健康检查功能。

  5) 支持PHP cgi方式和fastcgi方式。

  6) 配置代码简洁且容易上手。

  2. Nginx工作原理及安装配置

  Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

  Nginx的模块从结构上分为核心模块、基础模块和第三方模块:

  核心模块:HTTP模块、EVENT模块和MAIL模块

  基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,

  第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

  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 错误)

  yum install pcre-devel pcre -y

  #下载Nginx源码包

  cd /usr/src

  wget -c http://nginx.org/download/nginx-1.6.2.tar.gz

  #解压Nginx源码包

  tar -xzf nginx-1.6.2.tar.gz

  #进入解压目录,然后sed修改Nginx版本信息为WS

  cd nginx-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

  useradd www ;./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

  #.configure预编译成功后,执行make命令进行编译

  make

  #make执行成功后,执行make install 正式安装

  make install

  #自此Nginx安装完毕

  /usr/local/nginx/sbin/nginx -t 检查nginx配置文件是否正确,返回OK即正确。

  [[email protected] ~]# /usr/local/nginx/sbin/nginx -t

  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  [[email protected] ~]#

  然后启动nginx,/usr/local/nginx/sbin/nginx 回车即可。查看进程是否已启动:

  [[email protected] ~]# ps -ef |grep nginx

  nobody 5381 30285 0 May16 ? 00:04:31 nginx: worker process

  root 30285 1 0 2014 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx

  root 32260 32220 0 12:34 pts/0 00:00:00 grep nginx

  [[email protected] ~]#

今天先写到这里,欢迎大家阅读和发表意见。下节讲Nginx常用命令管理及升级,下节不见不散!

时间: 2024-11-06 07:26:36

Nginx的知识分享,感兴趣的可以看一下的相关文章

Nginx的知识分享,技术分享

3. Nginx常用命令管理及升级 查看nginx进程 ps -ef|grep nginx 说明:nginx的进程由主进程和工作进程组成. 启动nginx nginx 启动结果显示nginx的主线程和工作线程,工作线程的数量跟nginx.conf中的配置参数worker_processes有关. 平滑启动nginx kill -HUP `cat /var/run/nginx.pid` 或者 nginx -s reload 其中进程文件路径在配置文件nginx.conf中可以找到. 平滑启动的意思

分享一个控制台版本《推箱子》小游戏,感兴趣的可以看看

画面党看到这行红字的时候就应该关闭该页面了,没必要看下去. 一个控制台版本的<推箱子>小游戏,感兴趣的可以下来玩一下(包含源代码). 及一个简单的地图编辑器 相关说明在压缩包ReadMe文件中. 源代码下载:http://download.csdn.net/detail/hwenycocodq520/7104973 如果你觉得你设计出的关卡很不错可以发一份给我:e-mail:[email protected] 小程序能有大欢乐么?

最近对数据挖掘感兴趣了,为什么国外的课程会这么好

贴上671coder的一篇帖子 : 原址见 :http://blog.csdn.net/liuqiyao_01/article/details/37904611 前言 事实上有许多的途径可以了解机器学习,也有许多的资源例如书籍.公开课等可为所用,一些相关的比赛和工具也是你了解这个领域的好帮手.本文我将围绕这个话题,给出一些总结性的认识,并为你由程序员到机器学习高手的蜕变旅程中提供一些学习指引. 机器学习的四个层次 根据能力可以将学习过程分成四个阶段.这也是一个有助于我们将所有学习资源进行分类的好

编程基础知识分享——编程开始之前

对我来说,编程这件事与其说是工作,不如说是兴趣.尽管和自己理想中的编程比,自己的所谓编程只不过是小打小闹,但是现在又有多少所谓的IT从业者是做真正的编程?产业化的今天,其实真的没有必要区分所谓的程序员和码农,每个人的路线和生活都不相同,也不可能相同,有人学编程只是为了一份工作,有人纯粹为了爱好.我的理解,无论出发点如何,只要尊重自己的选择,能够有所收获就够了. 这系列文章,是自己当初学习编程的一些方法和经验,整理了一下,可以分成几块记录.对于专业的程序员,我的经验并不适合,一些计算机专业出身的朋

用户体验报告——知识分享

一.知乎 1.目标用户群:脑子里有经验.价值.知识的人:想要得到别人脑子里的经验.价值.知识的人 2.该产品解决了用户哪些需求? (1)获取某一领域专业大咖的知识.解惑.经验 (2)知识分享.变现 (3)社交 3.该产品用怎样的流程.逻辑实现用户需求? (1)用户针对某一领域进行提问,邀请该领域专业大V进行解答,大V接受邀请评论区回复,其他用户同样可以不请自来在评论区回复 (2)回复质量高,或者具有一定知名度的专业人员可以在知乎开设"付费提问"."Live".专栏,

知识分享

搜索引擎设计及发展 1.搜索引擎的起源 1.随着英特网的发展,搜索引擎也随着适应环境(技术,用户需求发展)随着发展.早期的文件在因特网上共享一些专业用户开始记录文件的类型地址等信息.但是随着加入因特网的人越来越多分享的资料也越来越多靠人工记录已经不能满足用户的需求了.这时出现了早期的爬虫用于满足用户对于资料的需求. 1990年,加拿大麦吉尔大学(University of McGill)计算机学院的师生开发出Archie.当时,万维网(World Wide Web)还没有出现,人们通过FTP来共

您对VMware感兴趣吗?快加入我们的行列里来吧

杨帆老师的WMware免费课 讲课时间:2014.9.24(周三晚上19:30分) 讲课地点:YY频道3660 --联科教育[山炮课堂] 远程桌面地址:YY桌面共享 课程讲师:杨帆(Alex.Yang) [致客户] 为了感谢您一直以来的支持和关注,我们诚邀您参加本期主题活动<VMware vSphere企业实战>,由资深VM专家为您分享企业的最佳实践案例,期待您的莅临! 联科教育 敬邀 [本期适用人群]   随着云计算技术越来越热门,越来越多的公司开始考虑把公司的应用平台应用到公有云或者私有云

测试相关知识分享(百度和其他途径查找到的)

A: 1.一套完整的测试应该由哪些阶段组成? 参考答案:测试计划.测试设计与开发.测试实施.测试评审与测试结论 2.单元测试的主要内容? 参考答案: 模块接口测试.局部数据结构测试.路径测试.错误处理测试.边界测试 3.集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? 参考答案: (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; (2)一个模块的功能是否会对另一个模块的功能产生不利的影响; (3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有

【opencv入门之二】感兴趣区域ROI,线性混合addWeighted

参考网站: http://blog.csdn.net/poem_qianmo/article/details/20911629 1.感兴趣区域ROI //[2]定义一个Mat类型并给其设定ROI区域 Mat imageROI = srcImage1( Rect(200, 250, logoImage.cols, logoImage.rows )); //[3]加载掩摸(必须是灰度图) Mat mask = imread( "dota_logo.jpg", 0 ); //[4]将掩摸拷贝