当前位置:首页 > 技术文章 > 正文内容

什么是Nginx?为什么使用Nginx?《Nginx的作用及优点》

arlanguage5个月前 (12-10)技术文章41

前言

为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求?

这个是我想问的,公司的新项目是要用Nginx+tomcat7+jdk开发的,用户命名可以直接访问tomcat,为啥还要用Nginx?这货是个啥玩意?

什么是Nginx?

根据前面的对比,我们可以了解到Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。


Nginx的应用场景

1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

基于端口的,不同的端口

基于域名的,不同域名

3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

为什么使用Nginx?

在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。比如,我们上传图片:


当然我们知道,为了解决并发,可以使用负载均衡:也就是我们多增加几个tomcat服务器。当用户访问的时候,请求可以提交到空闲的tomcat服务器上。


但是这种情况下可能会有一种这样的问题:上传图片操作。我们把图片上传到了tomcat1上了,当我们要访问这个图片的时候,tomcat1正好在工作,所以访问的请求就交给其他的tomcat操作,而tomcat之间的数据没有进行同步,所以就发生了我们要请求的图片找不到。

为了解决这种情况,我们就想出了分布式。我们专门建立一个图片服务器,用来存储图片。这样当我们都把图片上传的时候,不管是哪个服务器接收到图片,都把图片上传到图片服务器。

图片服务器上需要安装一个http服务器,可以使用tomcat、apache、nginx。

看到这里大家可能会问,既然我们要选择的是http服务器,为什么不继续使用tomcat,而要使用Nginx?

原因如下:nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。

nginx优点及常用web服务器产品

静态web服务软件

1 Apache 中小型web服务的主流

优点:运行速度快,性能稳定,扩展丰富

缺点:以进程为结构基础,消耗cpu,性能下降

2 Lighttpd 开源轻量级web服务器软件

优点:1 安全,快速,兼容性好,灵活

2 低开销,低CPU使用率

3 支持大多数apache的重要功能

缺点: 功能存在不足,部分代码缺陷(如对proxy功能不完善)

动态web服务软件

1 Microsoft IIS 微软旗下产品

优点:可靠、安全、性能和扩展能力强

缺点:部署成本高

2 Tomcat(公猫) Sun公司旗下产品

优点:部署安装方便,系统占有率低,主要的Servlet和JSP容器

缺点:功能少,无法满足复杂业务场景

nginx优点

1 高并发连接

2 内存消耗少

3 稳定性高

Nginx 版本信息

nginx官网有三个版本

1 stable version 稳定版(企业用)

2 mainline version 开发版(个人用)

3 Legacy versions 历史版

Nginx功能特性

1.处理静态文件,索引文件以及自动索引

2.反向代理加速(无缓存),简单的负载均衡和容错

3.FastCGI,简单的负载均衡和容错

4.模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤 器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理

5.SSL 和 TLS SNI 支持

6.IMAP/POP3代理服务功

7.使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端

8.使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端


Nginx主要功能

1 nginx可作为HTTP代理服务和反向代理

2 nginx可作为负载均衡

3 nginx可作为Web缓存

通过了解Nginx也算是多了一门技术,而且还是挺简单的,使用也比较方便。重点是可以给系统带来很大的性能提升。


总结;需要资料的关注+后台私信 《资料》免费领取

linux C/C++服务器后台开发面试题总结。C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,RTSP RTMP HLS 流媒体 ffmpeg,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等.............

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/46.html

分享给朋友:

“什么是Nginx?为什么使用Nginx?《Nginx的作用及优点》” 的相关文章

NGINX配置跨域CORS支持 nginx配置跨域请求

NGINX配置跨域CORS支持这两天在搞酷瓜云网课的 app,采用 uni-app 做全端支持,现学现卖,目前算是入门了。在做 H5 的时候难免会跨域请求后端 API,虽然用 HBuilder 内置的浏览器不会有跨域问题(这个应该是做了内部处理),但是那个内置浏览器真尼妈坑爹,过一会就会卡死,导致...

运维笔记:Windows下如何实现nginx服务自启动,看完你就会了

Nginx作为有每一个两三年工作经验的程序员来说都不陌生,基本上每个线上部署的项目都需要用到,Nginx常用的功能有负载均衡、反向代理、正向代理、搭建FTP服务等等。为了满足Nginx服务可以随操作系统启动,如果是Linux服务器的话可以通过shell脚本设置Nginx自启动,对于Windows操作...

Linux 系统安装 Nginx

Linux 系统安装 NginxCentOS 7 Nginx 源代码编译安装# 官网下载最新版 https://nginx.org/en/download.html # 系统安装必备组件: yum install gcc gcc-c++ pcre pcre-devel zlib-devel ope...

「每天一道面试题」Nginx 502错误原因和解决方法

Nginx 502错误原因和解决方法不管你是做运维还是做开发,哪怕你是游客,时不时会遇到 502 Bad Gateway 或 504 Gateway Time-out。出现这页面,把服务重启下,再实在不行重启下服务器,问题就解决了,特殊情况请继续阅读。状态码解释502 Bad Gateway:作为网...

性能优化大揭秘:从代码到架构,全方位提升系统性能的实战技巧

在现代软件开发中,系统性能优化是一个永恒的话题。无论是移动应用、Web应用还是分布式系统,性能始终是用户体验、系统稳定性以及业务可扩展性的关键因素。性能瓶颈的存在不仅可能导致用户流失,还可能增加系统维护成本,甚至影响到业务的正常运行。因此,从代码层面到架构层面,全面的性能优化是每个技术人员必须掌握的...

C# 实现高并发 Web 应用的性能优化秘籍

在现代的互联网应用中,尤其是大型 Web 应用,性能和可扩展性成为了核心竞争力。随着用户访问量和数据量的增大,高并发处理成为了系统稳定性和响应速度的关键因素。无论是电商平台、社交网站还是 SaaS 应用,如何应对海量用户的同时访问,确保系统高效运转,已经成为了技术人员面临的重要挑战。C# 和 ASP...