用nginx怎么搭建网站

小编

大家好,今天小编关注到一个比较有意思的话题,就是关于用nginx怎么搭建网站的问题,于是小编就整理了2个相关介绍用nginx怎么搭建网站的解答,让我们一起看看吧。

  1. nginx如何设置允许直接通过IP访问网站?
  2. Nginx反向代理为什么可以提高网站性能?

nginx如何设置允许直接通过IP访问网站?

如果什么都不设置,那么直接通过 IP 就能访问。
如果想同时通过网址和 IP 访问,需要在 server_name 中写一下网址和 IP。
具体例子 Nginx 的文档里写了:

Server names

Nginx反向代理为什么可以提高网站性能?

从能够提高网站性能这点来说,当然是由于Nginx反向代理与负载均衡的超强优势啦。

与Apache Tomcat比起来,Nginx可以承受的qps要大得多,这里除了底层原理的差异,与Nginx不负责处理业务逻辑,只负责接受转发请求的特点有分不开的关系。

反向代理

反向代理可以用于实现分布式,即对外虽然是一个完整的服务,但是其实这个服务对内是由部署在多台Tomcat的子服务共同组成的。

用nginx怎么搭建网站

举个例子,一个购物网站,分为查询商品,下单,结算三个模块(极简举例),如果这三个子服务都写在同一个Tomcat上,那么所有的请求就都会发给这一台Tomcat。

这样的部署有一个隐患:假设双十一之前,这个网站的压测没有做好,导致双十一当天0点的时候,结算的人太多,qps超过Tomcat可承受的上限,服务崩溃了,那么这时候,不仅是结算的人无法打开网页,连那些想查询商品,把商品放入购物车的用户也会发现打不开网页了。即此时这个网站的服务由于单个子服务的原因,全线崩溃了。

用nginx怎么搭建网站

如果使用反向代理功能,就能从两个方面来缓解这个隐患:

1 Nginx会将查询,下单与结算的请求分别发送给三个服务器,那么对于单独的服务器来说,瞬时间的请求量就会少很多,减少了挂掉的风险

2 就算挂掉了,由于Tomcat是分开的,挂掉其中一个,另外两个依然可以运行,不影响用户其他操作。

因此,我们说,反向代理也是一种提升网站性能的方式。

只不过,这里的网站指的其实是用户侧感知到的整体的服务,而不是具体的Tomcat server。

以上是我的浅见,欢迎各位在下方与我沟通交流。

我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。

大哥,这个问题问错了吧???

反向代理只是一种中介模式,区别于nginx之前的以内网链接外网这样的正向代理,可以让内部局域网通过http访问外网资源的中介模式!

反向代理是通过nginx作为中介,为别的外网访问内网提供一道隔离层和中间层,这样的模式称为反向代理

用nginx怎么搭建网站


OK,既然只是做个中间层,如果在业务应用只有一台的情况下,肯定不会提高网站性能,相反因为多走一层,所以性能下降,访问时间变长!

如果是业务应用服务器一台明显满足不了业务量访问的暴增,通过nginx连接多台业务服务器,实现一个负载均衡的业务集群,再通过一定的均衡方式则能避免单台应用服务器的过载,换句话说,提高整个业务系统的对外性能!

用nginx怎么搭建网站


那么题目可以改成,为什么负载均衡能提升网站性能?我们举例来看:

比如单台应用服务器的内存为8g,每次请求的请求数据为1m,因为每次需要调动系统资源,系统线程等,分配给jvm可能只有6g,jvm本身也有调度线程,系统进程等,业务的处理内存只有5g,也就是说单机的最大处理能力为5000m/1,也就是5000个请求,一旦请求量变大或者请求数增多,可能导致业务服务器的崩溃,整个业务系统处于零处理状态!

这个时候如果使用nginx作为负载均衡连接4-6台服务器,可以显著的提高并发能力为20000-30000,性能极具提升,同时稳定性增强!

那么nginx工作原理又是什么呢?

nginx通过一个master进程调度多个worker,根据配置的不同均衡策略,异步非阻塞得将请求放到不同的业务系统进行处理!

负载均衡方式大概会有几种:

1,轮询模式:每个业务服务器收到的请求数一样,除非宕机了!

2,权重模式:按照配置权重,分配不同的请求数!

3,最小响应时间:根据不同的应用服务器返回响应的时间进行分发,比如三台业务服务器中,某台内存更高,cpu各种更多,处理能力更强!

4,随机分发:随机的将请求分发到不同的服务器上!

5,按照hash值:根据不同的hash值,进行分发!

如何实现最简单的nginx均衡?

1,使用upsream server配置nginx和应用服务器之间的联系!

2,使用server模块对外采用同样的域名!

用nginx怎么搭建网站

这样就可以得到简单的负载均衡集群,当让还有更多诸如连接时间,缓存,进程数调节等的配置可以大为提高nginx性能!在此不做详细讨论!

除了负载均衡,nginx还提供了静态页面缓存等功能提升服务器的性能!nginx作为稳定,安全的反向代理服务器,拥有着最高50000的并发能力,是大多数公司实现均衡的不二之选!

nginx还有很多的妙用,在此暂且不表,如果有nginx配置,均衡策略选择方面的困扰的朋友,可私信我,知无不答哦!

NGINX当反向代理,只是能把请求先收下来,再排队到后端业务,但如果后端业务的处理能力低于用户请求量,那其实没啥用。

就像后端处理的的水管太小,你不管换多好的阀门,都不能加快的,只能算是有个保护,不至于把后端水管压爆了。

反向代理是指nginx作为代理服务器接受互联网用户的请求,然后将请求转发给真正的应用服务器进行处理,再将处理结果返回给用户的过程。这个过程与我们在电脑上使用代理服务器访问互联网的行为正好相反,所以被称为反向代理。

咋一看,反向代理增加了中间过程,理论上说只会降低网站性能,怎么会提高性能呢?最主要的原因是这种方式会降低后端应用服务器的网络连接时间,进而提升效率。如果互联网用户的直接请求应用服务器,网络连接时间会大大增加,会导致资源不能及时释放,进而降低性能。在反向代理模式下,应用服务器通过内网与nginx连接,网络性能和稳定性极高,可以及时释放资源进行后续处理,性能自然提高,而网络连接交给更擅长处理这个问题的nginx。

其实这个问题是不严谨的,首先我们需要明确两点:

1)很多Web服务器或容器都可以实现反向代理;

2)反向代理和网站性能的提升没有必然关系!

反向代理并不一定能提升网站性能

为什么现在很多人认为用Nginx这类Web服务器做个反向代理就能提高网站性能了呢?其实,反向代理和网站性能并没有必然关系,有时候用反向代理的确可以提高网站性能;但如果反向代理使用不当,反而会降低网站性能。

之所以很多人误认为反向代理能提升网站性能,究其原因是因为现在很多大型互联网平台架构都会采用反向代理这种模式,而且很多技术类书籍文章也会提到反向代理,所以造成了大家的这种误解。

反向代理最终是为了解决什么问题?

反向代理是相对于正相代理而言的,它是作用于服务器商的。

  • 在没有使用代理之前,客户端向服务端请求时,简单而言就是:客户端 => 服务端

  • 使用了反向代理后,用户的请求会先经过代理服务器,然后由代理服务器决定将请求转发至某台后端服务器进行请求。请求结束后其结果再由代理服务器返回给客户端。

用nginx怎么搭建网站

如果上面的理论描述不太理解也没关系,举个简单的例子。比如现在很多公司都有客服电话,用户打这个电话一般是先经过前台的,再由前台进行转发至某个分机,这个前台发挥的作用就和反向代理一样。

反向代理最终解决的问题是:隐藏了真实的服务端!而正向代理则是为了隐藏真实的客户端。

反向代理要配合负载均衡才能提升网站性能

如上所述,单一的反向代理并不能实际提升网站性能,反而会影响网站性能(因为多了一个中间转发层)。

对于中大型网站架构,反向代理都是配合负载均衡来使用的,这样才能提升网站性能。多个后端服务集群统一由反向代理服务器进行请求分发,这样就避免了单台服务器的性能瓶颈影响整个平台的稳定。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

到此,以上就是小编对于用nginx怎么搭建网站的问题就介绍到这了,希望介绍关于用nginx怎么搭建网站的2点解答对大家有用。

文章版权声明:除非注明,否则均为ZBLOG原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,16人围观)

还没有评论,来说两句吧...