Openresty最佳案例 | 第1篇:Nginx介绍

举报
方志朋 发表于 2018/12/22 11:21:19 2018/12/22
【摘要】 Nginx是一个高性能的Web 服务器,同时是一个高效的反向代理服务器,它还是一个IMAP/POP3/SMTP代理服务器。

Nginx 简介

Nginx是一个高性能的Web 服务器,同时是一个高效的反向代理服务器,它还是一个IMAP/POP3/SMTP

代理服务器。


由于Nginx采用的是事件驱动的架构,能够处理并发百万级别的tcp连接,高度的模块化设计和自由的BSD许可,使得Nginx有着非常丰富的第三方模块。比如Openresty、API网关Kong。


image.png


Nginx的优点

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

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

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

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

  • 支持PHP cgi方式和fastcgi方式。

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

Nginx的安装

Centos系统安装,请参考这里http://www.linuxidc.com/Linux/2016-09/134907.htm。先复制粘贴下它的文章。


1.gcc 安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:


image.png


2.PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:


image.png


3.zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。


image.png


4.OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。


image.png


5.官网下载

1.直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html


2.使用wget命令下载(推荐)。


image.png


6.解压

依然是直接命令:


image.png


7.配置

其实在 nginx-1.10.1 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。

使用默认配置


image.png


8.编译安装

image.png


查找安装路径:


image.png


Nginx的模块组成

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常用命令

nginx 环境变量配置:


image.png


  • 查看nginx进程

    ps -ef|grep nginx

  • 启动nginx

    nginx

    启动结果显示nginx的主线程和工作线程,工作线程的数量跟nginx.conf中的配置参数worker_processes有关。

  • 平滑启动nginx

    kill -HUP cat /var/run/nginx.pid

    或者

    nginx -s reload

  • 强制停止nginx

    pkill -9 nginx

  • 检查对nginx.conf文件的修改是否正确

    nginx -t

  • 停止nginx的命令

    nginx -s stop或者pkill nginx

  • 查看nginx的版本信息

    nginx -v

  • 查看完整的nginx的配置信息

    nginx -V


Nginx的配置

通常情况下,Nginx的配置在Ngix的安装目录下的/conf/config.default 文件里,基本配置如下:


image.png


location 常用配置如下:


image.png


Nginx的常用配置非常多,以下内容摘自于布尔教育课件,仅供参考:


image.png

image.png

image.png


配置详解2如下:


image.png

image.png


Nginx 内置绑定变量


image.png

image.png


参考资料

http://www.linuxidc.com/Linux/2016-09/134907.htm

https://moonbingbing.gitbooks.io/openresty-best-practices/content/ngx/nginx.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。