不看后悔(nginx最全教程)nginx service,只需三分钟,带你快速掌握Nginx服务!,
Nginx (engine x)是两个开放源码的,具备高效能、高mammalian、高工作效率的WWW服务工程项目和全权服务工程项目应用软件。
由白俄罗斯人 IgorSysoev 合作开发,作者将源码以类 BSD 许可证的形式开放源码出来供全球采用。
2019年,F5将收购 NGINX,总值约为6.7亿美元。F5阻抗平衡厂商。
开放源码,是说能直接获取 Nginx的源码,因此能完全免费采用。
高效能,是说反应速度十分快,且耗用的天然资源较低。
高mammalian,全力支持mammalian相连1-5万,且耗用的天然资源较低。
高可靠,体现在服务工程项目十分稳定。
mammalian5万,说的是动态小文件,NGINX(5万mammalian)+PHP(700个mammalian)。

选择Nginx原因
1、开放源码、完全免费
2、机能强悍、因此简单使用方便
3、高效能、高mammalian
4、高工作效率、高可扩充性(组件多,合作开发服务器端组件)
5、街道社区活跃(前1万互联网网站),排名no.1,且增长快。
Nginx生态状况
OpenResty?是两个如前所述Nginx与Lua的高效能Web平台,其外部集成了大量上乘的Lua库、服务器端组件以及大多数的依赖项
用于方便地搭建能处理超强mammalian、扩充性极高的动态Web应用、Web服务工程项目和动态交换机。诞生于2007年
Kong交换机是一款如前所述OpenResty(Nginx+Lua组件)编写的高可用、易扩充的,由Mashape公司开放源码的API Gateway工程项目
Kong是如前所述NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于采用的RESTful API来操作和实用性API信息系统,所以它能水平扩充多个Kong服务工程项目器,通过后置的阻抗平衡实用性把允诺均匀地递送到各个Server,来应对批量的网络允诺
Lua是JavaScript,nginx+Lua是JavaScript,对允诺过滤器、控制
mysql-proxy 随机存取分立应用软件采用lua合作开发的
Tengine是由淘宝发起的Web服务工程项目器工程项目(http://tengine.taobao.org/)
Nginx开发工具
做为Web服务工程项目应用软件
Nginx是两个全力支持高效能、高mammalian的Web服务工程项目应用软件,它具备许多优越的特性,做为Web服务工程项目器,和Apache相比,Nginx能全力支持更多的mammalian相连访问,而占用的天然资源却更慢,工作效率更高,在机能上也强悍了许多,几乎不略逊于Apache,而且Nginx更新频率更快,街道社区使用者更火爆。
1、Nginx是两个动态Web服务工程项目应用软件,采用Nginx运转HTML、JS、CSS、小相片等说明符(此机能类似于lighttpd应用软件)apache,lighttpd,IIS,Node.js
2、全力支持动静分立机能apache,lighttpd,IIS
3、全力支持动态Web服务工程项目扩充PHP(fastcgipass)JAVA(proxypass)Python(uwsgipass)memcache(memcachepass)……
Nginx紧密结合FastCGI运转PHP动态流程(采用fastcgipass方式)
Nginx紧密结合proxypass全力支持tomcat动态流程(采用proxypass)
Nginx紧密结合uwsgipass全力支持Python(采用uwsgipass)
4、全力支持安全的Web服务工程项目(https)拉沙泰格赖厄县HTTPS是以耗用性能为代价的,其实能登陆用https,支付采用https
做为逆向全权或阻抗平衡服务工程项目应用软件
在逆向全权或阻抗平衡服务工程项目各方面,Nginx能做为Web服务工程项目、PHP/Tomcat/Python等动态服务工程项目及Memcached内存的全权服务工程项目器,它具备类似于专精逆向全权应用软件(如Haproxy)的机能,同时也是两个优秀的电子邮件全权服务工程项目应用软件(最早合作开发这个产品的目的之一也是做为电子邮件全权服务工程项目),在Nginx的全权机能各方面,已经全力支持TCP和UDP的全权,Nginx的全权机能已经越来越强悍了
1、阻抗平衡同类应用软件:haproxy,lvs,硬件:F5,netscalernginx早期只全力支持http,现在也全力支持tcp/udp。全力支持tcp阻抗:阻抗mysql、数据服务工程项目。
2、逆向全权与阻抗平衡区别强调
萨德基全权:由外向外。替代工作效率低替代以太网内PC,允诺外部数据服务工程项目。
逆向全权:由外向内,替代,工作效率低替代外部的使用者允诺外部的数据服务工程项目器。
阻抗平衡:转贴、工作成本低(LVS)静一静,后抛允诺。
3、阻抗平衡和Web服务工程项目的走向
内存服务工程项目器
在Web内存服务工程项目各方面,Nginx可通过自身的proxycache组件实现类Squid等专精内存应用软件的机能。
常见内存应用软件:squid,varnish,nginx,ats
Nginx主要应用场景总结
1、动态Web服务工程项目器:采用Nginx运转HTML、JS、CSS、小相片等说明符(此机能类似于lighttpd应用软件)。
2、配合运转动态Web服务工程项目器:Nginx紧密结合FastCGI运转PHP等动态流程(例如采用fastcgipass方式)。Nginx紧密结合proxypass全力支持Java动态流程(tomcat/resin服务工程项目)。Nginx紧密结合uwsgipass全力支持Python。
3、逆向全权/阻抗平衡http阻抗平衡
4、做Web内存服务工程项目器(把文件放入内存里)。
5、全力支持安全的Web服务工程项目(https)
Nginx核心特点
动态小文件高mammalian,占用天然资源少,而且应用软件本身小
1、全力支持高mammalian:能全力支持几万mammalian相连(特别是动态小文件业务环境)
2、天然资源耗用少:在3万mammalian相连下,开启10个Nginx线程耗用不到200MB内存
3、能做HTTP逆向全权及加速内存,即阻抗平衡机能,内置对RS节点服务工程项目器健康检查机能,这相当于专精的haproxy应用软件或lvs的机能。具备squid等专精内存应用软件等的内存机能
Nginx epoll模型和Apache select模型区别
Nginx采用最新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,而Apache则采用的是传统的select模型
目前Linux下能承受高mammalian访问的Squid、Memcached应用软件都采用的是epoll模型
简单总结:
1、epoll和select网络IO处理模型
2、epoll异步网络IO模型,全力支持高mammalian
3、select传统的网络IO模型,高mammalian能力弱
4、Apache则采用的是传统的select模型,Nginx采用高mammalian的epoll模型
异步和同步:以及异步的动态化的案例
网络IO模型概述
通常来说,网络IO能抽象成使用者态和内核态之间的数据交换。一次网络数据读取操作(read),能拆分成两个步骤:
1、网卡驱动等待数据准备好(内核态)
2、将数据从内核空间拷贝到进程空间(使用者态)
根据这两个步骤处理方式不一样,我们通常把网络IO划分成阻塞IO和非阻塞IO
Nginx应用软件核心组成
1、Nginx可执行命令:
它是Nginx本身框架以及相关组件等构建的两个二进制文件,这个文件就相当于汽车本身,所有的机能都由它提供
2、nginx.conf实用性文件:
它相当于驾驶人员,虽然二进制可执行文件已经提供了许多的机能,但是这些机能究竟有没有开启,或者开启后定义怎样的行为去处理允诺,都是由nginx.conf这个文件决定的,所以他就相当于这个汽车的驾驶员,控制这个汽车的行为
3、访问日志access.log:
它相当于这辆汽车经过所有地方形成的GPS轨迹,access.log会记录Nginx处理过的每一条HTTP的允诺信息、响应信息
4、错误日志error.log:
它相当于飞机的黑匣子,当出现了一些不可预期的问题时,能通过error.log将问题定位出来
Nginx应用软件安装
yum安装
实用性nginx源
#方法一:# vim /etc/yum.repos.d/nginx.repo[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginxsigning.keymodulehotfixes=true#方法二:#非交互操作注意转义字符# cat >/etc/yum.repos.d/nginx.repo <
安装并启动
yum install nginx -yrpm -qa nginx#如果服务工程项目器上开启 http 服务工程项目要先关闭 http 服务工程项目systemctl stop httpdsystemctl disable httpd#启动 nginx 服务工程项目systemctl start nginxsystemctl enable nginxsystemctl status nginx#验证最终的安装是否正确wget 10.0.0.7# 将 IP 地址改为自己服务工程项目器的 IPcurl 10.0.0.7# 将 IP 地址改为自己服务工程项目器的 IP或浏览器访问
编译安装
下载源码包
mkdir -p /server/toolscd /server/toolswget http://nginx.org/download/nginx-1.20.1.tar.gz
安装依赖
# rewrite正则相关pcre:URL重写应用软件,实现伪动态\URL跳转等、SEO优化yum install pcre pcre-devel -y # https加密访问用它yum install openssl openssl-devel -y
编译安装步骤
userdel -r wwwuseradd -u 1111-s /sbin/nologin www -M#解压 nginx 压缩包tar xf nginx-1.20.1.tar.gzcd nginx-1.20.1/ln -s /application/nginx-1.20.1//application/nginx#指定 nginx 使用者权限并进行编译安装./configure –user=www –group=www –prefix=/application/nginx-1.20.1/–with-httpstubstatusmodule –with-httpsslmodule –with-pcremakemake install# nginx 启动检查lsof -i :80/application/nginx/sbin/nginx -t/application/nginx/sbin/nginxnetstat -lntupgrep nginx
验证最终的安装是否正确
wget 10.0.0.8# 将 IP 地址改为自己服务工程项目器的 IPcurl 10.0.0.8# 将 IP 地址改为自己服务工程项目器的 IP或浏览器访问
configure参数作用

实用性 nginx PATH环境变量
#在 /etc/profile 文件里加入vim /etc/profileexport PATH=”/application/nginx/sbin/:$PATH”#增加后执行下面,使之生效./etc/profile#检查测试echo $PATHnginx -t
实用性 systemd 启动方式
# vim /usr/lib/systemd/system/nginx.service[Unit]Description=The nginx HTTP and reverse proxy serverAfter=network-online.target remote-fs.target nss-lookup.targetWants=network-online.target[Service]Type=forkingPIDFile=/application/nginx/logs/nginx.pidExecStartPre=/usr/bin/rm -f /application/nginx/logs/nginx.pidExecStartPre=/application/nginx/sbin/nginx -tExecStart=/application/nginx/sbin/nginxExecReload=/application/nginx/sbin/nginx -s reloadKillSignal=SIGQUITTimeoutStopSec=5KillMode=processPrivateTmp=true[Install]WantedBy=multi-user.target# chmod +x /usr/lib/systemd/system/nginx.service# systemctl enable nginx# pkill nginx# systemctl start nginx# lsof -i :80
原文来源于:https://www.oldboyedu.com/blog/4332.html