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

举报
方志朋 发表于 2018/12/22 11:21:19 2018/12/22
1w+ 0 0
【摘要】 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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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