• Nginx


    dns域名解析的整个过程

    先从本地host文件中使用域名获取对应的ip地址—>如果本地host文件中没有的话,就去运营商获取ip地址。

    反向代理与正向代理区别

    正向代理:比如访问一些国外的网站,需要通过vpn翻墙才可以访问这时候就可以使用正向代理可以隐藏用户真实行为;

    反向代理:客户端请求达到代理服务器 在通过代理服务器转发到真实服务器

    正向代理与反向代理区别:正向代理隐藏用户的真实行为、反向代理隐藏真实服务器

    服务器集群可能会存在哪些问题

    1.分布式Session
    2.分布式日志
    3.分布式任务调度

    软负载与硬负载的区别

    硬件负载均衡是直接在服务器和外部网络间安装负载均衡设备。常用的硬件设备有:F5

    Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 是使用最为广泛的HTTP软负载均衡器,高效的性能、稳定性、丰富的功能集、示例配置文件和低系统资源的消耗。

    nginx负载均衡的实现及其策略?

    实现方式:配置一个上游服务器集群,然后将请求都交给这个集群来处理。

    http {
        resolver 10.0.0.1 valid=300s ipv6=off;
        resolver_timeout 10s;
         server {
            location / {
                proxy_pass http://backend;
            }
    }
    
        upstream backend {
            zone backend 32k;
            least_conn;
            ...
            server backend1.example.com resolve;
            server backend2.example.com resolve;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    Nginx负载均衡的策略:
    1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    upstream backserver {
    	server 192.168.0.14;
    	server 192.168.0.15;
    }
    
    • 1
    • 2
    • 3
    • 4

    2、指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    upstream backserver {
    	server 192.168.0.14 weight=10;
    	server 192.168.0.15 weight=10;
    }
    
    • 1
    • 2
    • 3
    • 4

    3、IP绑定ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    upstream backserver {
    
    	ip_hash;
    	server 192.168.0.14:88;
    	server 192.168.0.15:80;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、Fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream backserver {
    	server server1;
    	server server2;
    	fair;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5、Url_hash(第三方):按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

    upstream backserver {
    	server squid1:3128;
    	server squid2:3128;
    	hash $request_uri;
    	hash_method crc32;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Nginx设置只能通过域名访问。

    在Nginx的配置文件中增加配置信息。

    if ($host != '域名'){
       return 444;
    }
    
    • 1
    • 2
    • 3

    root 、alias指令区别

    alias是一个目录别名的定义,root则是最上层目录的定义。
    有一个重要的区别是alias后面必须要用/结束,否则会找不到文件的。。。而root则可有可无。

    网站跨域的问题产生的背景

    页面中请求的ajax地址如果与页面请求地址域名和端口、协议不同的话,浏览器采用安全策略,请求能够正常到达服务器端,但是无法获取响应结果。

    如何解决网站跨域的问题

    1. B项目响应头设置允许跨域权限 response.setHeader(“Access-Control-Allow-Origin”, “*”); 适合于小公司
    2. 使用jsonp解决网站跨域问题 缺点:只能支持Get请求 模拟脚本提交。
    3. 使用Nginx搭建API网关保持域名和端口一致 Location
    4. 使用微服务中的Zuul网关、gateway
    5. HttpClient实现转发 缺点:重复发送两次请求

    JSONP解决网站跨域的问题存在那些缺点

    只能支持Get请求,模拟脚本提交。

    lvs基本的作用

    LVS的核心可以实现虚拟vip,实现对Nginx负载均衡功能。是Linux系统自带的功能。

    keepAlived基本的作用

    keepAlived对服务器状态检测和故障隔离,基于lvs+keepAlived可以高可用的集群环境。keepAlived 需要安装

    项目正在发布时,如何解决用户无法访问的问题

    可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,从而保证服务器7*24小时运行。

    如果nginx宕机之后,如何保证服务可用

    基于Nginx搭建一主一备用 如果主能够访问的情况下就访问主,否则情况下就访问备。在Linux服务器上写一个定时任务,利用keepAlived检查nginx服务器的状态,如果为停止状态就执行nginx启动命令的脚本。重启几次还不行的话发邮件或其它方式提醒管理员,检查服务器、系统。

    请说明Nginx+Lvs+keepAlived 分别的作用

    Nginx:HTTP服务器,用来做服务的负载均衡等功能。
    Lvs:LVS的核心可以实现虚拟vip,实现对Nginx负载均衡功能。
    keepAlived:keepAlived对服务器状态检测和故障隔离基于lvs+keepAlived可以高可用的集群环境。

    tomcat如果停止呢?你是如何解决

    将tomcat+nginx做成集群部署。利用健康检查的形式检查tomcat服务器的状态,实现自动重启、通知管理员的方法。

    什么是网站动静分离架构模式

    动静就是将动态资源(jsp/ftl)与静态资源(img/css/js)分开,从而提高网站响应的速度;

    基于Nginx解决网站动静分离

    Nginx作为静态资源服务器比Tocmat响应吞吐高很多;
    基于Nginx实现动静分离方案有两种:

    • 基于location 判断前缀 项目名称
    • 基于location 判断后缀

    什么是服务器带宽不足的原因

    静态资源太大、服务器本身带宽就低、接口请求数据大等等。

    CDN内容分发基本的概念介绍

    其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

    其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。

    CDN内容分发底层的实现原理

    能够将静态资源缓存到全国各地节点能够减少客户端与cdn带宽距离传输提高响应速度; 就近原则

    一个网站访问卡慢真正的原因

    带宽不足、静态文件加载慢、接口响应慢、客户端与服务器端的距离等等。

    如何实现对静态资源压缩

    1. 人工压缩
      Css/JS/IMG实现压缩地址:http://tool.oschina.net/jscompress/
    2. Maven自动打包压缩 自动生成.min文件
    3. Nginx自带压缩

    使用Nginx静态资源压缩实现原理

    nginx将js等文件中的常用的语法,使用字段匹配,将较长的语法function替换成短字典a,重复次数比较多的语法会替换。使用nginx压缩非常耗CPU。

    使用Nginx缓存静态页面设计思想

    客户端缓存(浏览器缓存)------》CDN缓存(七牛云)-----》Nginx缓存

  • 相关阅读:
    vue项目配置代理解决跨域问题
    (四)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (基本功能介绍)
    LeetCode刷题系列 -- 25. K 个一组翻转链表
    玩转SpringBoot:SpringBoot的几种定时任务实现方式
    Spring是如何解决循环依赖问题的及三级缓存的作用
    【C++】(5)类和对象练习,日期类的实现,运算符重载
    matlab神经网络所有传递函数(激活函数)公式详解
    STM32注入通道
    JAVA集合02_List集合的概述、并发修改异常、迭代器遍历、子类对比
    JS的优化技巧
  • 原文地址:https://blog.csdn.net/weixin_44044929/article/details/126212782