Day23_Nginx

1.请解释一下什么是 Nginx ?

Nginx ,在我眼里它就是可以充当服务器,比如它可以作为 http server,可以作为反向代理服务器,可以实现负载均衡

Nginx 的主要功能如下:

  • 作为 http server
  • 反向代理服务器
  • 实现负载均衡

(可实现http服务器、反向代理、负载均衡)

1.Nginx应用场景?

  • http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
  • 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。
  • nginx中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截。

1.为什么要用Nginx?

优点:

  • 可实现http服务器、反向代理、负载均衡
  • nginx处理静态文件好,耗费内存少
  • 可实现高并发连接,处理响应快
  • Nginx配置简单
  • 可以不暴露真实的服务器IP地址

1.Nginx的优缺点?

优点:

  • 可实现http服务器、反向代理、负载均衡
  • nginx处理静态文件好,耗费内存少
  • 可实现高并发连接,处理响应快
  • Nginx配置简单
  • 可以不暴露真实的服务器IP地址

缺点:

  • 动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,

1.正向代理与反向代理

在这里插入图片描述

正向代理代理的是客户端,
反向代理代理的是服务端

这里是引用

什么是正向代理?

比如你番茄的时候,你的机子是不能连接外网的,你把请求发给代理服务器,然后由代理服务器去上网,然后请求的资源通过代理服务器返回给你。正向代理总结就一句话:代理端代理的是客户端。

什么是反向代理?

比如有远程想要访问tomcat服务器,直接访问tomcat可能访问量太大导致坏死,现在你部署了tomcat集群,远程的所有请求都打到代理服务器上,代理服务器分发这些请求到tomcat1、tomcat2上面,你可以看到反向代理代理的是服务端
也就是说由代理服务器来接受客户端的连接请求,然后将请求发给服务器并将从服务器上得到的结果返回给给客户端。反向代理总结就一句话:代理端代理的是服务端。

1.使用“反向代理服务器”的优点是什么?

它可以充当中间层,把服务器的真实ip等一些重要的信息隐藏起来,这对于安全方面来说是很好的。

1.Nginx怎么处理请求的?

nginx会监听某个域名和端口,然后使用location匹配URI,匹配成功的话就会访问location里面的地址

 server {
     # 第一个Server区块开始,表示一个独立的虚拟主机站点
 			listen 80# 提供服务的端口,默认80
 			server_name localhost; # 提供服务的域名主机名
 			location / {
    # 第一个location区块开始
 						root html; # 站点的根目录,相当于Nginx的安装目录
 						index index.html index.htm; # 默认的首页文件,多个用空格分开
 			}
}

1.Redis为什么那么快?

1、内存操作;

2、单线程,省去线程切换、锁竞争的开销;

3、非阻塞IO模型,epoll。

1.Redis是单线程,那怎么监听大量的客户端连接呢?

这里是引用

Redis 基于 Reactor 模式开发了自己的文件事件处理器。虽然文件事件处理器以单线程方式运行,但通过使用 I/O 多路复用程序来监听多个套接字,并根据 套接字目前执行的任务来为套接字关联不同的事件处理器。

当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关 闭(close)等操作时,与操作相对应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件。

1.为什么Nginx性能这么高?

  • 因为他的事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决

1.Nginx多进程模型是如何实现高并发的?

因为他的事件处理机制:异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决

因为它和Redis有点像,都是有自己的文件事件处理器。虽然文件事件处理器以单线程方式运行,但通过使用 I/O 多路复用程序来监听多个套接字,并根据 套接字目前执行的任务来为套接字关联不同的事件处理器。

当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关 闭(close)等操作时,与操作相对应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件。

1.为什么 Nginx 不使用多线程?

Apache: 创建多个进程或线程,而每个进程或线程都会为其分配 cpu 和内存,并发过大会榨干服务器资源。

Nginx: 采用单线程来异步非阻塞处理请求(epoll),不会为每个请求分配 cpu 和内存资源,节省了大量资源,同时也减少了大量的 CPU 的上下文切换。所以才使得 Nginx 支持更高的并发。

Netty、Redis 基本采用相同思路。

1.Nginx静态资源?

  • 静态资源访问,就是存放在nginx的html页面,我们可以自己编写

1.如何用Nginx解决前端跨域问题?

  • 使用Nginx转发请求。把跨域的接口写成调本域的接口,然后将这些接口转发到真正的请求地址。

举个栗子,例如我们在开发一个Vue应用。
原先:调试页面是:http://192.168.1.100:8080/,请求的接口是:http://ni.hao.sao/api/get/info
现在修改请求的接口为:http://192.168.1.100:8080/api/get/info
然后去Nginx到/usr/local/etc/nginx/目录(这是Mac的),修改nginx.conf文件。

server{
   
        listen 8080;
        server_name  192.168.1.100;
 
        location /{
   
            proxy_pass http://192.168.1.100:8080;
        }
 
        location /api{
   
            proxy_pass http://ni.hao.sao/api;
        }
    }

1.location的作用是什么?

  • location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。

1.为什么要做动静分离?

  • 让静态的资源只走静态资源服务器,动态的走动态的服务器
  • Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。
  • 对于静态资源比如图片,js,css等文件,我们则在反向代理服务器nginx中进行缓存。这样浏览器在请求一个静态资源时,代理服务器nginx就可以直接处理,无需将请求转发给后端服务器tomcat。
    若用户请求的动态文件,比如servlet,jsp则转发给Tomcat服务器处理,从而实现动静分离。这也是反向代理服务器的一个重要的作用。

1.Nginx怎么做的动静分离?

Nginx 0day是指Nginx的一个零日漏洞,其中涉及到了Nginx的LDAP-auth守护程序。该漏洞的影响范围是Nginx版本18.1。根据AgainstTheWest的GitHub存储库,该漏洞主要与Nginx中的LDAP-auth守护程序有关,该守护程序与Nginx一起使用,用于访问私有的GitHub、Bitbucket、Jenkins和Gitlab实例。虽然该漏洞在4月11日时已被公开,并且Nginx已发布了一篇博客来描述这个漏洞,但需要注意的是,该漏洞只影响Nginx的LDAP参考实现,而不影响Nginx的开源和Nginx Plus版本。如果您没有使用LDAP参考实现,那么您无需采取任何措施。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [关于 Nginx 0day 漏洞,需要采取哪些措施?](https://blog.csdn.net/ll837448792/article/details/126105462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [NGINX 0 DAY LDAP RCE 漏洞来龙去脉](https://blog.csdn.net/u012516914/article/details/126080132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值