只需三分钟,带你快速掌握Nginx服务!,nginx在服务器部署的主要作用

8个月前 (01-18) 首席小编
15分钟
146
0

Nginx (engine x)是一个开源的,具备高性能、高并发、高可靠性的WWW服务和代理服务软件。

由俄罗斯人 IgorSysoev 开发,作者将源代码以类 BSD 许可证的形式开源出来供全球使用。

2019年,F5将收购 NGINX,总价值约为6.7亿美元。F5负载均衡厂商。

开源,是说可以直接获取 Nginx的源代码,并且可以免费使用。

高性能,是说处理速度非常快,且消耗的资源很低。

高并发,支持并发连接1-5万,且消耗的资源很低。

高可靠,体现在服务非常稳定。

并发5万,说的是静态小文件,NGINX(5万并发)+PHP(700个并发)。

选择Nginx原因

1、开源、免费

2、功能强大、并且简单易用

3、高性能、高并发

4、高可靠性、高可扩展性(模块多,开发第三方模块)

5、社区活跃(前1万互联网网站),排名no.1,且增长快。

Nginx生态状况

OpenResty?是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项

用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。诞生于2007年

Kong网关是一款基于OpenResty(Nginx+Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目

Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求

Lua是脚本语言,nginx+Lua是脚本语言,对请求过滤、控制

mysql-proxy 读写分离软件使用lua开发的

Tengine是由淘宝网发起的Web服务器项目(http://tengine.taobao.org/)

Nginx企业应用

作为Web服务软件

Nginx是一个支持高性能、高并发的Web服务软件,它具有很多优越的特性,作为Web服务器,和Apache相比,Nginx能够支持更多的并发连接访问,而占用的资源却更少,效率更高,在功能上也强大了很多,几乎不逊色于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核心特点

静态小文件高并发,占用资源少,而且软件本身小

1、支持高并发:能支持几万并发连接(特别是静态小文件业务环境)

2、资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存

3、可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的haproxy软件或lvs的功能。具备squid等专业缓存软件等的缓存功能

Nginx epoll模型和Apache select模型区别

Nginx使用最新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,而Apache则使用的是传统的select模型

目前Linux下能够承受高并发访问的Squid、Memcached软件都采用的是epoll模型

简单总结:

1、epoll和select网络IO处理模型

2、epoll异步网络IO模型,支持高并发

3、select传统的网络IO模型,高并发能力弱

4、Apache则使用的是传统的select模型,Nginx使用高并发的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

本文由:首席小编 发布于 酷主题,转载请注明出处:https://www.kuzhuti.cn/blog/4205.html
酷客_WP小编
作者

相关推荐

7个月前 (02-20)

有哪些技术在新媒体领域得到了应用与发展,新技术在媒体中的应用

在新媒体领域,有许多技术得到了应用与发展。其中包括: 云计算:云计算技术使得新媒体公司能够更快速地开发和部署应用,并且可以根据需求动态调整资源。 大数据:新媒体公司可以利用大数据技术,对海量的用户数据进行分析,了解用户喜好、行为习惯等信息,...
7个月前 (02-20)

MES系统怎么选?MES生产管理的主要内容

原标题:MES系统怎么选?MES生产管理的主要内容 生产制造活动是制造企业的核心活动。作为制造活动的实体单位,计划目标和企业价值的实现环节,车间管理是企业管理的焦点。而随着制造业的高速发展,MES是制造企业信息化自动化系统的重点和当前热点,...
7个月前 (02-20)

微信管理系统更有效的管理微信的信息内容,在这里管理微信的数据吧

原标题:微信管理系统更有效的管理微信的信息内容 许多企业会把工作分配到工作微信,因为没人希望自己的个人微信混和工作等相关知识,可是总有人会运用公司的漏洞,做一些损害公司利益的事儿。 不要认为这种事情很少。在深圳了解一家媒体融资公司。他们有3...
7个月前 (02-19)

学生电子档案管理系统,“家”“校”“社”三维立体交流空间,学校的电子档案

大数据时代学校在记录学生成长的进程中,重新审视学生档案管理,顺时而动,以新思维力促学生成长档案的改革。“中小学生成长记录电子档案”被逐步引入教育管理中来,并显示出蓬勃的生命力。 学生档案管理系统是一个学校不可缺少的组成部分,它的内容对于学校...
7个月前 (02-19)

睿哲信息:选Sitecore?还是选……选择内容管理系统,只需六步,睿哲信息技术服务有限公司

内容管理系统(CMS)是网站建设走向成功的重要组成部分,目前网络上的内容管理系统比较复杂,想找一个不错又非常适合当下数字化营销环境的内容管理系统并非易事。在对于各大CMS系统进行功能性、操作、扩展性、安全性等具体性能上对比之前,还需要一个成...

评论

已有0人参与了评论

扫码添加微信

联系我们

微信:Kuzhuti
在线咨询:QQ交谈