设为首页 收藏本站
查看: 1866|回复: 0

[经验分享] Nginx教程(一) Nginx入门教程

[复制链接]

尚未签到

发表于 2017-12-22 09:44:01 | 显示全部楼层 |阅读模式
Nginx教程(一) Nginx入门教程

  


1 Nginx入门教程


Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。



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 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事
  件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高


1.1 Nginx下载安装
  1、Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/software/
  wget http://nginx.org/download/nginx-1.13.0.tar.gz
DSC0000.png

  2、Nginx解压安装:
  tar -zxvf nginx-1.13.0.tar.gz -C ./
  3、Nginx编译
  ./configure
  报错
DSC0001.png



  • 解决./configure: error: C compiler cc is not found错误:
  错误原因:缺少编译环境,安装编译源码所需要的工具和库:
  执行命令:yum install gcc gcc-c++ ncurses-devel perl
  

  再次编译:./configure --prefix=/usr/local/nginx
DSC0002.png



  • 解决./configure: error: the HTTP rewrite module requires the PCRElibrary.错误:
  错误原因:缺少HTTP rewrite module模块,禁用或者安装所需要的模块。我们选择安装模块:
  执行命令:yum install pcre pcre-devel
DSC0003.png



  • 解决./configure: error: the HTTP gzip module requires the zliblibrary.错误:
  错误原因:缺少HTTP zlib类库,我们选择安装模块:
  执行命令:
  yuminstall zlib gzip zlib-devel
  4.编译成功
DSC0004.png

  5.安装Nginx:
安装命令:make & make install

DSC0005.png

DSC0006.png


1.2 Nginx启动

1、查看安装目录:cd

  conf 存放配置文件
  html 网页文件
  logs 存放日志
sbin   shell启动、停止等脚本

DSC0007.png

  2、启动nginx
DSC0008.png

  查看进程
DSC0009.png

  常见问题:
DSC00010.png

  解决nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)错误:
  错误原因:不能绑定80端口,80端口已经被占用。
3、停止nginx,重新加载配置文件

执行命令:kill –INT进程号

启动成功:

DSC00011.png

重新读取配置文件:


nginx-s>
4、Nginx信号控制


  TERM, INT
  快速停止(杀死进程)
  QUIT
  优雅的关闭进程,即等请求结束后再关闭
  HUP
  改变配置文件,平滑的重读配置文件
  USR1
  重读日志,在日志按月/日分割时有用
  USR2
  平滑的升级
  WINCH
  优雅关闭旧的进程(配合USR2进行升级)

  5.打开浏览器
DSC00012.png


1.3常用命令
  进去nginx的安装目录
DSC00013.png

  进去sbin
DSC00014.png

  常用命令
  

启动  
.
/nginx  

  
检查 nginx.conf配置文件
  
.
/nginx -t  

  
重启
  
.
/nginx -s>

  
停止
  

  
.
/nginx -s stop  


1.4 学习Nginx推荐书籍:
  1. 《深入剖析Nginx》
  2. 《实战Nginx:取代Apache的高性能Web服务器》
  3. 《深入理解Nginx:模块开发与架构解析》
  4. 《深入理解Nginx:模块开发与架构解析》
  5. 《决战Nginx技术卷:高性能Web服务器部署与运维》
  6. 《决战Nginx系统卷:高性能Web服务器详解与运维》
  from:http://blog.csdn.net/yuan_xw/article/details/51181282#comments

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-426748-1-1.html 上篇帖子: Nginx上部署HTTPS + HTTP2 下篇帖子: nginx配置location总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表