范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

直接让web服务运行在80端不行吗?为什么要用nginx反向代理?

  其实现在估计很少人会用80端口部署服务了,起码都是443端HTTPS服务了,因为HTTPS相对更安全。
  但是这不影响这个问题的解答,下面我以个人的一些看法说明下。
  一个服务器只有一个常用的端口
  我们都知道你只买了一台公网服务器,默认80端口是HTTP服务,443端口是HTTPS服务。
  而现在很多时候,微信、网站搜索引擎,默认都是用这些端口进行正常处理,当你有多个服务要对外开放,你如果A服务已经占用了80端口,那么B服务就不可以再占用80端口。
  而你采用Nginx服务直接占用80或者443端口,那么我们根据Nginx的规则配置,就可以设置如下规则:
  访问url路径/api 走A服务,访问url路径/admin 走B服务。
  Nginx高性能
  熟悉Nginx性能的程序员,都知道Nginx的性能之高,这里就不展开说。
  因为有些编程语言框架,比如Flask,本身处理web请求就性能不高,通过Nginx可以提前处理web请求,而Flask就可以更多关注业务本身的逻辑。
  Nginx负载均衡
  当你的web服务后台可以多实例部署,这时候你说的web服务直接运行80端口,那就不能支持多台实例。
  而通过nginx,就可以指向两台甚至多台实例的后端服务,而且可以设置策略进行负载请求。
  比如负载后端两个web服务,A机器性能配置强,那么我们就可以分配更多的请求到A机器。
  B机器性能一般,那么我们就可以减少请求到这台机器。
  Nginx安全性
  因为有了Nginx服务器在前面进行处理请求,用户根本不知道后端是用什么语言进行处理,减少后端暴露的几率。
  不过由于使用Nginx的人很多,Nginx的漏洞也是备受关注,所以要及时关注Nginx的漏洞和最新稳定版本升级。
  这里提供一个检测Nginx稳定版本的视频解说:https://www.ixigua.com/6832886164081345038/ ,有兴趣的可以看看。
  Nginx资源消耗
  使用Nginx服务可以占用低的内存消耗,同时能支持高并发连接,何乐而不为。
  如果觉得回答能解决到一些问题,可以关注@testerzhang,我会不定期发布一些相关技术文章和视频。
  你说的当然可以,想搞明白你的疑问,必须先了解nginx是什么,作用是什么,什么是反向代理,作用是什么,等这些你了解了,自然明白为什么要用nginx做反向代理了。
  nginx是什么?
  nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  nginx服务器有什么作用?
  1、反向代理
  2、负载均衡
  3、动静分离
  什么叫反向代理?
  反向代理:反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。
  为什么要使用反向代理?
  1、防止主服务器被恶意攻击
  2、为负载均衡和动静分离提供实现支持
  什么是负载均衡?负载均衡的作用是什么?
  负载均衡就是将任务分摊到多个操作单元上进行执行。对于Nginx而言,就是将收到的访问请求分发给不同的Web服务器,以提高访问性能以及可靠性。负载均衡可以有效防止一个服务器宕机而导致服务停止。
  当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此一来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。
  什么是动静分离?动静分离的作用?
  动静分离:运用nginx的反向代理功能分发请求:所有动态资源的请求交给应用服务器,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器。
  动静分离的作用:主要是nginx处理静态页面的效率远高于tomcat的处理能力,使用c语言开发的nginx对静态资源每秒的吞吐量是使用Java语言开发的tomcat的6倍,也远高于其它应用服务器。
  好了上面大体解释了nginx是什么,反向代理是什么,希望可以对你有帮助
  让web服务运行在80端口是可行的,但是会存在一些问题。问题一:其他项目只能使用非80端口
  通常一台服务器都会部署很多项目,但是80端口只有一个,如果一个web项目独自占用了80端口,就会造成其他项目只能使用其他端口。
  我们都知道访问web服务需要通过"网址:端口 "的形式,80端口作为HTTP协议的默认端口访问时可以省略。
  这样一来对于那些没有在80端口运行的web服务,用户就需要手动在网址后面加上对应端口才能访问到,这对用户来讲是不可接受的。问题二:不方便扩展
  当访问量很小时可能只需要一台服务器实例就能支撑,但是当访问量上升之后服务就需要横向扩展上负载均衡之类的措施。
  这个时候每增加一个负载就需要一台独立的带80端口的服务器,会平白无故的增大不必要的开销,而且在负载均衡的方案选择上可能也只有为数不多的选择。使用Nginx反向代理有什么好处?好处一:复用80端口
  先来看一下使用Nginx反向代理之后多服务共用80端口的示意图:
  用户请求首先会到达Nginx,Nginx根据根据链接地址将请求转发至运行在其他端口的web服务上。
  Nginx反向代理不仅可以充分利用服务器的性能部署多个web服务,而且多个项目可以共用80端口很友好的对外提供web服务。好处二:扩展方便
  同样先来看一下使用Nginx反向代理之后的扩展方案示意图:
  当单实例的web服务支撑不了大量请求时,我们就需要做横向扩容,启动多个实例一起对外提供服务。
  使用Nginx方向代理之后,我们只需要找几台服务器,可在任意的端口上启动web服务。
  用户请求首先会到达Nginx,之后Nginx会根据ip哈希、实例权重等规则将请求转发到对应服务器、对应端口的web服务上。总结
  直接让web服务运行在80端口是可行的,但是会存在80端不能复用和扩展不方便的问题,所以实际情况中我们通常不会直接在80端口运行web服务。
  使用Nginx反向代理之后,同一台服务器上的多个web服务可以共用80端口对外提供服务,对用户比较友好,另外服务的横向扩展也会更方便。
  这是个好问题,我强迫症犯了,本来你写的是"web",我改为了"Web"。
  可以直接让Web服务器运行在80端口 ,80端口是国际默认的Web访问端口,这样客户端在访问时不需单独加上端口。只是Nginx可以做的更好,更专业。静态文件、反向代理,负载均衡等等都是Nginx的长项。Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器)
  举个简单的例子,假如没有Nginx反向代理,那么前端调用的多个子系统接口的话,可能会出现foo.com:8080/users、bar.com:9090/users等等类似网址。而使用Nginx 反向代理以后,就成为了foo.com/users有没有很简洁?
  我们秉承着"追根究底"的态度,不仅要知其然,也要知其所以然。下面对Nginx代理服务器背后的技术点一一剖析!什么是代理服务器?
  代理服务器(Proxy Server )是保障服务器安全,防止被攻击的一项重要手段。主要工作在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。客户机发送数据时,并不会直接发送给目的主机,而是先发送给代理服务器;代理服务接受客户机请求之后,再转发至目的主机,并接收其返回的数据,存放在代理服务器的硬盘中,再发送给客户机。
  如上图,电脑A和C在通信的时候,所有传输的数据包都要经过中间电脑B中转,这里B就充当代理服务器的作用。为什么要用代理服务器?提高访问速度  当同一个用户下次再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,可以明显提高请求响应速度。出于安全的考虑,当所有的客户机请求都必须通过代理服务器访问远程站点时,可以在代理服务器上设限,过滤某些不安全行为。通过代理服务器访问不能访问的目标站点。正向代理和反向代理的区别?
  代理分为正向代理和反向代理。其中正向代理 的对象是客户端,通过它来理隐藏真实客户端,客户端请求的服务都被代理服务器代替来请求。比如我们访问谷歌的时候,由于某种原因无法正常访问,这时候我们使用一些上网工具,让其代理我们去访问谷歌,然后再将结果返回给我们,这时候科学上网工具扮演的就是正向代理的角色。
  反向代理 的对象是服务器端,通过它来隐藏真实服务端。比如我们访问百度的时候,你只需要输入域名即可,但是背后其实是有成千上万台服务器遍布全国为你服务的,这其中,百度的域名就充当了反向代理的角色。
  总结
  可以直接让Web服务器运行在80端口,但是不建议这么做。已经有了更加专业的Nginx为我们做好了静态文件、反向代理,负载均衡等,他不仅可以为我们提供更加安全的服务器保护措施,更便于我们对系统的后期扩展,为什么不用呢?本文为作者"一个程序员的奋斗史"悟空问答原创文章,未经允许转载、抄袭必究!
  一个非常好的问题。我是工作多年的Web应用架构师,来回答一下这个问题。欢迎关注我,了解更多IT专业知识。 一,可以让Web服务直接运行在80端口
  Web服务开发测试时,启动项目后,打开浏览器就能访问。部署到生产环境服务器时,也可以这样简单直接。如果只是一个Demo演示,并不需要考虑太多运营的问题。 二,生产环境中使用Nginx反向代理
  对于商业应用来说,需要考虑运维,比如安全管理、热发布、集群扩展等,实现这些功能就需要nginx的帮助了。
  Nginx是一个轻量级的Web反向代理服务,具有高并发、运行稳定的优点,配置简单,并且支持负载均衡。
  1,设置堡垒机,保障服务器安全
  不像Demo演示或者简单的Web应用,商业系统都需要使用多台服务器。为了避免泄露不必要的信息,只将一台堡垒机暴露在外面,其他服务器都隐藏起来,降低受到攻击的安全隐患。
  2,方便管理维护,支持热发布
  功能发布、系统升级等维护工作贯穿整个商业应用的生命周期,为了做到不停机,比如采用灰度发布策略,先将准备更新发布的机器从Nginx反向代理配置中移走,待完成后再加回来,使得整个部署过程不影响系统运行。
  3,支持集群扩展和负载均衡
  现在Web应用的架构和功能越来越复杂,多层架构、数据中台、异步任务调度,等等。为了应对高峰期的用户量和并发量,经常需要对负载高的节点进行集群化部署和自动伸缩,Ngnix根据策略配置,对请求进行分发和调度。
  中大型应用的负载均衡经常使用云服务的LoadBalance。
  Web服务是可以运行在80端口的,而且默认也是监听80端口。为什么用nginx做反向代理,应该是跟题主的应用环境有关
  题主当前的应用环境
  按照题主的意思,应该是你当前的web服务器上监听的是非80端口,这种有可能是你当前使用的web服务器上有多个web应用,且监听的是不同的端口,比如 8080、8081、8082……。这种环境应该是网站在很初始的阶段,因为经费紧张,所以需要一台web服务器部署多个web应用(假设)
  但是在公网访问web服务的时候,默认是使用80端口,但是web服务监听的是非80端口,所以需要通过反向代理服务器,将请求转发给对应的web服务器上的web应用。
  接下来需要了解一下什么是反向代理和负载均衡,有利于之后的架构优化
  什么是反向代理
  就是真实服务器不直接访问,而是通过代理进行访问。客户端直接访问的是反向代理服务器,然后反向代理服务器接收用户的请求然后重新发起请求去请求后端对于的web服务,web服务处理完成之后,将结果返回给反向代理服务器,最后由反向代理服务器将结果响应给客户端。
  这样做有什么好处呢?
  (1)解决非80端口的问题。
  (2)隐藏真实的web服务器,同时在反向代理服务器可以做安全配置,提供安全性。
  (3)有利于后期架构优化,比如做负载均衡
  nginx作为web服务器软件,同时也可以实现反向代理。什么是负载均衡
  负载均衡 (load balance),将多个请求分摊到多个操作单元上执行。当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的处理能力。
  实现负载均衡,除掉昂贵的硬件设备实现外,还有软件实现,主要有lvs、haproxy和nginx。nginx实现负载均衡是基于nginx反向代理功能的,所以一开始使用nginx做反向代理有利于后期做负载均衡。
  总结
  Web服务是可以运行在80端口的,使用nginx做反向代理,可以解决web应用使用非80端口的问题,还有利于后期的架构优化演变。
  文|技术猿小黄图|来源于网络
  创作不易,看完点个赞关注一下再走呗。如果有什么想法或建议,欢迎在评论区留言
  有可能一台服务器会部署多个应用服务,比如会员服务8081端口,订单服务8082端口,搜索服务8083端口,但是服务器只有一个80或者443,那么就需要nginx或者apache做反向代理,根据不同的规则或者前缀把相应的请求转发到服务端口进行处理后再返回,在多台服务器下,比如a服务器是会员服务,b服务器是订单服务,c服务器是搜索服务,那么也可以通过一台nginx做服务网关,根据不同的规则或者前缀转发请求到不同的服务器上,相比作为一个web服务器来说,nginx更多的时候是用做服务网关的作用,当然nginx也可以用作负载均衡来使用,负载均衡核心还是服务网关和请求代理转发,还有大多数服务都是https的,这就需要证书,如果比如直接用java程序80端口作为外部服务,配置https证书也是个很复杂的事情,当然,这并不是最重要的原因,最重要的原因概括起来就是,服务网关,请求转发,尤其是现在微服务大行于天下的时候,nginx显得尤为重要和必要
  有一次,我们公司被国外黑客攻击,将公司所有生产资料加密,并邮寄了一份相当嚣张的勒索邮件,声称若想解密文件必须支付700多个比特币,合计9000多万人民币(胃口还挺大),同时承诺不会在系统里留任何后门程序。如果不支付,他们会将公司机密文件全部暴露到Internet,并将攻击途径透露给所有网络黑客,让公司持续不断地遭受攻击。当然,公司并没有支付勒索金额,而是将资料恢复后,把服务器隐藏在防火墙后面,此事就此了结。
  "隐藏"!nginx反向代理也在这次资安事件中被引入使用……01 隐藏数据库服务器
  资安管控最重要的就是数据,首先需要保护的就是数据库,所以在整个网络架构上,数据库服务器在最底层,对它的访问权限仅开给Web服务器,用户端开通访问Web服务器的80端口。这样看来数据库的安全得以保障,但是想要更安全,怎么办?
  02 隐藏Web服务器
  想要更安全,那就将Web服务器也隐藏!于是nginx派上了用场。用户端开通访问nginx的80(或8080……)端口的访问权限,nginx开通访问Web服务器80端口的访问权限。这样用户就可以通过nginx代理来访问Web页面,看似用户访问Web服务器,实则是nginx访问。
  数据库服务器独享一个网段,只有Web服务器可以访问它的单一端口,Web服务器独享一个网段,只有nginx可以访问它单一端口,nginx独享一个网段,提供所有用户端单一端口访问权限。一层层的隐藏,以及端口限制,黑客再想攻入数据库服务器,简直好比登天!!!
  Nginx 是高性能的HTTP和反向代理web服务器,在高并发支撑方面有极大的优势。通过Nginx的反向代理功能,可以实现tomcat等web容器的负载均衡,从而搭建高可用高并发的web应用架构。
  直接让web服务运行在80端,这当然没问题!
  但是有两个前提条件:
  1、你得有个运营商的固定IP地址 ,普通拨号宽带获取到的动态IP,是不行的,就算获取到的是互联网IP,80端口也是关闭的,并且运营商不会为你开通,所以要么选择独立IP的云服务器,要么选择运营商的专线接入网络
  2、必须在工信部备案成功 以后,才能开放80端口,才能运行你的WEB服务;
  而采用nginx反向代理,不需要你有固定IP,甚至不需要你获取到互联网IP,哪怕是10或者100开头的"大内网"IP,也无所谓,照样能让你运行WEB服务。
  当然了,如果是正规的、长久的WEB服务,那我强烈建议到工信部备案后开通。

为什么很多程序员不用switch,而是大量的ifelseif?答案主要因为switch不适合业务系统的实际复杂需求,业务不断的变更迭代,一更改需求,条件的复杂度高了,switch无力处理。switch优点那么什么时候适合switch,它的场景杨元庆说科学无国界,你认同这句话吗?科学无国界?!如果这话真是杨元庆说的,那我只能跟他说,无知,太无知了!如果说,科学真的是无国界的,那为啥美国的航天科学家不来我们这,帮助我们建造航天飞船?那为啥俄罗斯的航空科学家不国产芯片再传好消息,打破西方垄断,已掌握3个关键制造环节国产芯片掌握3个关键制造环节技术国外掌握大量的芯片制造技术,在芯片制造领域,很多顶级的设备,材料都需要从国外进口。因为对国外有非常大的芯片依赖,导致我国每年的芯片进口额都在3000最新升级华为鸿蒙2。0的方法,一分钟告诉你设备支不支持全文共计665字,阅读时间约为5分钟华为真的牛皮,被谷歌卡住脖子后,真就自己研发出来了自己的操作系统和生态圈没错就是最近频频上榜,登上热搜的鸿蒙操作系统harmonyOS2。0城河长电科技完成收购ADI新加坡测试工厂AMD发布3DChiplet架构戴姆勒同意支付诺基亚专利使用费新闻速递三分钟了解产业大事1hr长电科技完成收购ADI新加坡测试工厂6月1日消息,长电科技宣布,已正式完成对AnalogDevicesInc。(以下简称ADI)新加坡测试厂房的收购,该厂房华为周跃峰没有安全健康的数据产业做支持,数字经济就是空中楼阁数据安全的存在意义是保证数据在全生命周期得到妥善保护,最终实现价值变现并促进数字经济健康发展。我们身处一个高度信息化的社会,如果企业机构对数据没有采取保护,无异于一种自杀行为。华为深圳一特斯拉车主被困车内险窒息,特斯拉回应近日,深圳一特斯拉车主经历了大概是人生中最难忘的一劫,烈日炎炎,他竟被困在车里长达15分钟,差点虚脱又又又见特斯拉,一起来看看是怎么回事被困车内险窒息5月30日上午,文先生像往常一荣耀618首日惊喜不断智慧屏开售1小时销量破万荣耀50官宣6月1日,荣耀官方公布了今年618的首日成绩。荣耀智慧屏战绩非常引人瞩目,开售1小时全平台狂卖上万台,天猫平台只用了40分钟销量销售额就超去年全天,无疑已经成为618的大热爆款。从千元机便宜但千万别买错!618销量火爆的三款手机,最低只要599元618已经正式拉开了手机的销量争夺大战,各大手机厂商都在摩拳擦掌地提升自家的手机销量,同时也在抢占手机市场。这个时候是入手手机的最佳时刻,因为通过各大手机的销量,就可以看出来哪些手未来5年,到底是混合动力汽车更热一点,还是纯电动汽车?现今社会,汽车是每个人都避不过的话题。有车一族或者要置换汽车,还没购车的人或者在预谋着人生的第一辆汽车。不管是哪一种,都应该了解一下,未来几年中国汽车市场可能的变化!首先抛出一个结微软将于6月24日公布下一代Windows系统上线时间来源环球网据外媒6月3日报道,微软今天正式宣布将会在6月24日举办发布会,发布会上将正式宣布下一代Windows系统的上线时间。届时,微软CEO与首席产品官均将出席这次发布会。微软
微信为何占用内存大?设置好这两个功能,手机立马变得流畅起来毫无疑问,在所有的社交软件中,微信在我们生活和工作中使用的频率一定是排在最前列。无论是玩朋友圈,好友聊天还是里面的移动支付,微信给大家带来的便捷确实是有目共睹的,目前的地位甚至超越全面eSIM?中国联通终于宣布了!eSIM卡,即EmbeddedSIM,嵌入式SIM卡。eSIM卡的概念就是将传统物理SIM卡直接嵌入到设备芯片上,而不是作为独立的可移除零部件加入设备中。用户可以更加灵活的选择运营折个纸惊动了军方!麻省理工的食人花能抓起比自身重120倍物体!本文转载自微信公众号最黑科技(IDzuiheikeji),原文首发于2019年3月21日,标题为折个纸惊动了军方!MIT食人花能抓起超100倍自重物体!,不代表瞭望智库观点。对于折国产新巨头诞生从濒临破产到出货破5000万,逆袭三星夺全球第一中国在早些年一直都面临着缺屏少芯的尴尬局面,由于屏幕以及芯片都是属于科技含量较高的产品,在早些年中国科技水平还较低的时候,确实很难实现国产化,但是如今随着华为京东方等国产企业的不断程序员半夜12点没加班,领导你来我公司养生呢?网友凭什么?每次阿里腾讯的朋友聊天问候对方的第一句话就是,你们加班多吗?每次阿里腾讯的朋友想要转岗到另一个部门问最多的就是,那边加班多吗?每次阿里腾讯的朋友跳槽最关心的问题就是,他们加班多吗?华为P30系列发布顶峰不挤牙膏的典范一年双旗舰,华为走了类似于三星手机的路线,但不同的是经历了多年的摸爬滚打,华为已经看清楚属于自己的道路。从去年P20系列的真正惊艳到Mate20稍稍无感,原以为华为登上手机相机顶峰300万岗位将消失于电动化洪流燃油车正缓缓驶离历史舞台。除了中国,挪威荷兰印度等国宣布2025年之前禁止销售化石燃料汽车,英国法国等国家从2040年开始全面禁止销售汽油车和柴油车,日本2050年停止生产传统燃油麒麟985曝光!华为Mate30或首发标配5G性能大增昨日消息,据外媒报道,预计于今年推出的华为Mate30系列会使用麒麟985SoC芯片,而麒麟985的一大亮点就是标配5G基带,也就是说华为Mate30系列会支持5G网络。去年麒麟9镜子的像素有多少,为什么手机摄像头做不出镜子的效果?像素(Pixel)是由Picture(图像)和Element(元素)这两个单词的字母所组成的,是用来计算数码影像的一种单位。镜子反射出来的画面不是数码图像,所以不能用像素标示。还有商汤科技无意试水,全球最大的AI独角兽看不上科创板?科创板被炒得风风火火,但是国内知名独角兽却大多没有动作。比如全球最大的AI独角兽商汤科技,在科创板还没有成熟之前,其似乎无意首批试水。3月22日,科创板首批9家受理企业名单的出台,14家P2P公司被中国互金协会取消资格3家遭公开谴责近日,中国互联网金融协会官网发布中国互联网金融协会对部分违规会员单位采取自律惩戒措施。消息称,依据中国互联网金融协会章程中国互联网金融协会自律公约中国互联网金融协会自律惩戒管理办法