简介(来自维基百科)

百度百科地址: https://baike.baidu.com/item/nginx
Nginx(发音同engine x)是异步框架的网页服务器,也可以用作反向代理负载平衡器HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。[6] 2011年成立同名公司以提供支持。[7]2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购[8]
Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,[9] 通常作为负载均衡器[10]

特点

Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion Passenger模块的动态HTTP内容,并可作为软件负载均衡器[11]
Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构[12]可以在高负载下提供更可预测的性能。[13]
Nginx是一款面向性能设计的HTTP服务器,相较于Apachelighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。
根据Netcraft在2016年11月网络服务器调查,[14] Nginx被发现是所有“活跃”站点(被调查站点的18.22%)和百万最繁忙站点(被调查站点的27.83%)中使用次数最多的Web服务器。根据W3Techs的数据,前100万个网站中的37.7%,前10万个网站中的49.7%,以及前10000个网站中的57.0%被使用。[15] 据BuiltWith统计,在全球前10000个网站中,有38.2%的网站使用Nginx。[16] 维基百科使用Nginx作为其SSL终端代理[17]OpenBSD 5.2版本(2012年11月1日)开始,Nginx成为了OpenBSD基础系统的一部分,提供了替代Apache 1.3系统的替代方案,[18] 但是后来被替换为OpenBSD自己的httpd(8)。[19]

可大量并行处理

Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。

安装方式

  1. Nginx 的安装方式也有两种,第一种通过rpm编译安装,第二种通过yum安装。而目前主流使用docker容器来打击Nginx服务,所以此系列教程仅以yum安装方式来讲解Nginx的使用。

yum方式安装Nginx

安装nginx 的官网 yum 源

centos7 默认是不带有Nginx 的repo源,查看命令

  1. [root@master luoqiz]# yum repolist
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.huaweicloud.com
  5. * extras: mirrors.neusoft.edu.cn
  6. * updates: mirrors.neusoft.edu.cn
  7. 源标识 源名称 状态
  8. base/7/x86_64 CentOS-7 - Base 10,097
  9. extras/7/x86_64 CentOS-7 - Extras 304
  10. updates/7/x86_64 CentOS-7 - Updates 332
  11. repolist: 10,733

安装yum源

  1. [root@master luoqiz]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

查看

  1. [root@master luoqiz]# yum repolist
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. * base: centos.ustc.edu.cn
  5. * extras: centos.ustc.edu.cn
  6. * updates: centos.ustc.edu.cn
  7. 源标识 源名称 状态
  8. base/7/x86_64 CentOS-7 - Base 10,097
  9. extras/7/x86_64 CentOS-7 - Extras 304
  10. nginx/x86_64 nginx repo 166
  11. updates/7/x86_64 CentOS-7 - Updates 332
  12. repolist: 10,899
  13. [root@master luoqiz]#

安装nginx软件

  1. [root@master luoqiz]# yum install nginx -y
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. * base: centos.ustc.edu.cn
  5. * extras: centos.ustc.edu.cn
  6. * updates: centos.ustc.edu.cn
  7. 正在解决依赖关系
  8. --> 正在检查事务
  9. ---> 软件包 nginx.x86_64.1.1.16.1-1.el7.ngx 将被 安装
  10. --> 解决依赖关系完成
  11. 依赖关系解决
  12. =====================================================================================================================================
  13. Package 架构 版本 大小
  14. =====================================================================================================================================
  15. 正在安装:
  16. nginx x86_64 1:1.16.1-1.el7.ngx nginx 766 k
  17. 事务概要
  18. =====================================================================================================================================
  19. 安装 1 软件包
  20. 总下载量:766 k
  21. 安装大小:2.7 M
  22. Downloading packages:
  23. nginx-1.16.1-1.el7.ngx.x86_64.rpm | 766 kB 00:00:14
  24. Running transaction check
  25. Running transaction test
  26. Transaction test succeeded
  27. Running transaction
  28. 正在安装 : 1:nginx-1.16.1-1.el7.ngx.x86_64 1/1
  29. ----------------------------------------------------------------------
  30. Thanks for using nginx!
  31. Please find the official documentation for nginx here:
  32. * http://nginx.org/en/docs/
  33. Please subscribe to nginx-announce mailing list to get
  34. the most important news about nginx:
  35. * http://nginx.org/en/support.html
  36. Commercial subscriptions for nginx are available on:
  37. * http://nginx.com/products/
  38. ----------------------------------------------------------------------
  39. 验证中 : 1:nginx-1.16.1-1.el7.ngx.x86_64 1/1
  40. 已安装:
  41. nginx.x86_64 1:1.16.1-1.el7.ngx
  42. 完毕!

启动Nginx

暂时关闭防火墙

  1. [root@master luoqiz]# service nginx start
  2. Redirecting to /bin/systemctl start nginx.service
  3. [root@master luoqiz]# service firewalld stop
  4. Redirecting to /bin/systemctl stop firewalld.service

此时访问所在服务器
image.png

配置 Nginx 服务

设置开机启动

  1. systemctl enable nginx

启动服务

  1. systemctl start nginx

停止服务

  1. systemctl restart nginx

Nginx 常用命令

启动nginx

  1. service nginx start

关闭nginx服务

  1. service nginx stop

重启nginx服务

  1. service nginx restart

重新加载nginx配置文件nginx.conf,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。

  1. nginx -s reload

或者

  1. $ sudo systemctl reload nginx