nginx详解(持续更新)

nginx定义

nginx安装

nginx目录

程序相关命令

服务相关命令

虚拟主机(server)

路由匹配(location)

  代理(proxy_pass)

   正向代理

   反向代理

   负载均衡(upstream)

    负载均衡策略

动静分离

跨域

https配置

nginx优化

nginx实例

nginx定义

Nginx是轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内各个部门正越来越多使用Nginx取代Apache.

nginx安装

安装nginx需要先安装其依赖组件以及c++环境,最后安装nginx;

组件包含:

• pcre-8.3.7.tar.gz :nginx的http模块使用pcre来解析正则表达式,需要在linux上安装pcre库
• openssl-1.0.1t.tar.gz :安装openssl库,让 nginx 支持 https(即在ssl协议上传输http)
• zlib-1.2.8.tar.gz : nginx使用zlib对http包的内容进行gzip,需要在linux上安装安装zlib库

  1. 组件下载

    wget http://nginx.org/download/nginx-1.10.2.tar.gz
    wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
    wget http://zlib.net/zlib-1.2.11.tar.gz
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz

  2. c++环境安装

    yum install gcc-c++

  3. 组件安装

    openssl安装

      tar zxvf openssl-fips-2.0.10.tar.gz
      cd openssl-fips-2.0.10
      ./config && make && make install

    pcre安装

      tar zxvf pcre-8.40.tar.gz
      cd pcre-8.40
      ./configure && make && make install

    zlib安装

      tar zxvf zlib-1.2.11.tar.gz
      cd zlib-1.2.11
      ./configure && make && make install

  4. nginx安装

    tar zxvf nginx-1.10.2.tar.gz
    cd nginx-1.10.2
    ./configure && make && make install

nginx目录

  1. linux目录

    目录 内容
    conf 存放配置文件
    html 类似于tomcat的webapps目录,存放网络访问的资源
    logs存放日志
    sbin存放nginx的启动文件
  2. windows目录

    在这里插入图片描述
    核心配置文件位置:
    在这里插入图片描述

程序相关命令

  1. linux系统

    安装完成后的路径为:/usr/local/nginx。nginx位于/usr/local/nginx/sbin,以下命令都是基于这个目录的
    (也可以将/usr/local/nginx/sbin添加到环境变量中)

    1. 启动服务

      • 普通启动服务:./nginx
      • 配置文件启动服务:./nginx -c /usr/local/nginx/conf/nginx.conf

    2. 停止服务

      • 暴力停止服务:./nginx -s stop
      • 优雅停止服务:./nginx -s quit

    3. 检查与重启服务

      • 检查配置文件:./nginx -t
      • 重新加载配置:./nginx -s reload

    4. 查看相关进程

      • 查看相关进程:ps -ef | grep nginx

服务相关命令

  1. linux系统

    #开机自动启动systemctl
    systemctl enable nginx#启动Nginx(x成功后可以直接访问主机IP,会展示Nginx默认页面)
    systemctl start nginx#停止Nginx
    systemctl stop nginx#重启Nginx
    systemctl restart nginx#重新加载Nginx
    systemctl reload nginx#查看Nginx运行状态
    systemctl status nginx
    

虚拟主机(server)

(服务器级别)nginx使用server容器定义一个虚拟主机。server容器没有严格区分基于IP和基于名称的虚拟主机,它们通过listen指令和server_name指令结合起来形成不同的虚拟主机。

# 基于IP地址的虚拟主机
server {listen 80;server_name 192.168.100.25;location / {root /www/longshuai/;index index.html index.htm;}
}
server {listen 80;server_name 192.168.100.26;location / {root /www/xiaofang/;index index.html index.htm;}
}# 基于名称的虚拟主机
server {listen 80;server_name www.longshuai.com;location / {root /www/longshuai/;index index.html index.htm;}
}server {listen 80;server_name www.xiaofang.com;location / {root /www/xiaofang/;index index.html index.htm;}
}# 基于端口的虚拟主机
server {listen 80;server_name 192.168.100.25;location / {root /www/longshuai/;index index.html index.htm;}
}
server {listen 8080;server_name 192.168.100.25;location / {root /www/xiaofang/;index index.html index.htm;}
}

路由匹配(location)

->点击查看nginx实例

(请求级别)nginx根据用户请求的URI对应至server模块,然后依靠location块的匹配规则,选择进入对应location块进行处理。

修饰符匹配规则如下:

在这里插入图片描述

它们之间匹配优先级:精确匹配>左侧通配符匹配>右侧通配符匹配>正则表达式匹配

进入对应的location块后再通过root指令和index指令结合起来配置被访问的首页即可

指令内容
root配置服务器的默认网站根目录位置,默认为nginx安装主目录下的html目录
index配置首页文件的名称

写法如下:

location / {root html; index index.html index.htm; }

正向代理

正向代理对我们是透明的,对服务端是非透明的,即服务端并不知道自己收到的是来自代理的访问还是来自真实客户端的访问。

在这里插入图片描述

反向代理

->点击查看nginx实例

以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端

举个栗子,我想在本地使用 www.mickey.com 的域名去访问 www.taobao.com。那么这个时候我们就可以通过nginx去实现。

在这里插入图片描述

nginx负载均衡

->点击查看nginx实例

  1. 负载均衡

    我们项目部署在不同的服务器上,但是通过统一的域名进入,nginx则对请求进行分发,减轻了各服务器的压力。

    负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两种:

    负载种类成本内容
    硬件负载造价昂贵成本较高数据的稳定性安全性等等有非常好的保障
    软件负载均衡 利用现有的技术结合主机硬件实现的一种消息队列分发机制
  2. 负载均衡策略

    请求数量按照负载均衡策略进行分发到不同的服务器

负载均衡策略

->点击查看nginx实例

  1. 轮询策略(默认)

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

    #动态服务器组
    upstream bobo{server 192.168.64.1:9001; #tomcat 1server 192.168.64.1:9002; #tomcat 2server 192.168.64.1:9003; #tomcat 3server 192.168.64.1:9004; #tomcat 4
    }location ~ .jps$ {proxy_pass http://bobo}

    轮询策略可以给不同的后端服务器设置一个权重值(weight),所谓权重就是按照比例来进行分配,如果有三次请求,2次在第一个机器上,1次在另外一个机器上。
    权重大小和访问比率成正比,该策略常用于后端服务器性能不均衡的情况下。

    #动态服务器组
    upstream dynamicserver {server 192.168.64.1:9001  weight=2;                    #tomcat 1server 192.168.64.1:9002;                              #tomcat 2server 192.168.64.1:9003;                              #tomcat 3server 192.168.64.1:9004;                              #tomcat 4
    }
  2. ip_hash策略

    (nginx版本1.3.1之前不能在ip_hash中使用权重)
    对每个请求访问的ip进行hash运算,再根据结果进行分配,这样每个访客固定访问一个后端服务器。
    这也在一定程度上解决了集群部署环境下session共享的问题。
    当有服务器需要剔除,必须手动down掉。

    upstream dynamicserver {ip_hash;  #保证每个访客固定访问一个后端服务器server 192.168.64.1:9001  weight=2;                   #tomcat 1server 192.168.64.1:9002;                             #tomcat 2server 192.168.64.1:9003;                             #tomcat 3server 192.168.64.1:9004;                             #tomcat 4
    }
    
  3. fair

    智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块

  4. url_hash

    按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包

通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器。

动静分离

->点击查看nginx实例

在说动静分离前,我们要知道为何要做动静分离以及他能解决啥问题,首先,我们常见的web系统中会有大量的静态资源文件比如掘金主页面刷新后的f12如下:

在这里插入图片描述

可以看到有很多静态资源,如果将这些资源都搞到后端服务的话,将会提高后端服务的压力且占用带宽增加了系统负载(要知道,静态资源的访问频率其实蛮高的)所以为了避免该类问题我们可以把不常修改的静态资源文件放到nginx的静态资源目录中去,这样在访问静态资源时直接读取nginx服务器本地文件目录之后返回,这样就大大减少了后端服务的压力同时也加快了静态资源的访问速度,何为静,何为动呢?

• 静: 将不常修改且访问频繁的静态文件,放到nginx本地静态目录(当然也可以搞个静态资源服务器专门存放所有静态文件)
• 动: 将变动频繁/实时性较高的比如后端接口,实时转发到对应的后台服务

接下来我们将构造一个html页面,然后点击按钮后发送get请求到后端接口,流程如下:

在这里插入图片描述

server {listen 9000;server_name localhost;location ~*.(jps|js|css|html|png|gif|map)$ {root /usr/local/web;expires 1d;}location ~.action$ {proxy_pass http:1.117.75.21:8080;}}

跨域

->点击查看nginx实例

  1. 同源策略

    由于同源策略的原因产生了跨域问题,同源策略目的是为了保护用户信息安全,防止恶意网站窃取数据,目前所有浏览器都实现同源策略。

    同源策略主要是指三点相同即:协议 、域名、端口,这三点相同的两个请求则可以看作是同源的,如果其中任意一点不同,则代表两个不同源的请求,此时同源策略会限制不同源之间的资源交互。

  2. 场景

    web 领域开发中,经常采用前后端分离模式。这种模式下,前端和后端分别是独立的 web 应用程序,例如:后端是 Java 程序,前端是 React 或 Vue 应用。各自独立的 web app 在互相访问时,势必存在跨域问题。

  3. 解决跨域

    避免不同源可以解决跨域,将后端的代理放在前端的server(即统一使用一个端口),因为server支持多个location配置

https配置

  1. 前置条件

    • 服务器已经安装nginx并且通过http可以正常访问
    • 拥有ssl证书,没有的可以去阿里购买或者免费申请一年

  2. ssl模块安装

    一般情况下自己安装的nginx都是不存在ssl模块的

    1. 检查是否存在ssl模块

      进行Nginx安装目录的sbin目录下,输入:./nginx -V

      如果出现 (configure arguments: --with-http_ssl_module), 则已安装

  3. 配置ssl证书

    解压缩下载好的证书(证书一般是pem文件和key文件,这里名字可以随便改)

    将下载好的证书上上传到服务器,我将证书放在了root目录下的card文件夹

  4. 配置nginx.conf

    http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {#监听443端口listen 443;#你的域名server_name huiblog.top; ssl on;#ssl证书的pem文件路径ssl_certificate  /root/card/huiblog.top.pem;#ssl证书的key文件路径ssl_certificate_key /root/card/huiblog.top.key;location / {proxy_pass  http://公网地址:项目端口号;}}server {listen 80;server_name huiblog.top;#将请求转成httpsrewrite ^(.*)$ https://$host$1 permanent;}
    }

nginx优化

  1. 安全优化(提升网站安全性配置)

  2. 性能优化(提升用户访问网站效率)

nginx实例

一些对安全性要求比较高的站点,可能会使用 HTTPS(一种使用ssl通信标准的安全HTTP协议),使用 nginx 配置 https 需要知道几点:
• HTTPS 的固定端口号是 443,不同于 HTTP 的 80 端口
• SSL 标准需要引入安全证书,所以在 nginx.conf 中你需要指定证书和它对应的 key

->模仿多个主机

->location匹配

->反向代理

->负载均衡

->动静分离

->跨域

  1. 模仿多个主机

    • (Linux服务器)修改nginx配置文件如下,并重启
    在这里插入图片描述
    • (客户机)修改hosts文件

    192.168.64.150 www.abc.com
    192.168.64.150 www.bbs.com
    
  2. location匹配

    1. 前缀匹配

      • 没有修饰符,修改配置文件如下,并重启nginx

      server {listen       80;server_name www.tangbb.com;location /abc {default_type text/html;echo "abc...";}
      }
      

      • 可匹配示例:

      www.tangbb.com/abc
      www.tangbb.com/abc/other
      www.tangbb.com/abc?.…

    2. 通用匹配

      • 一般nginx配置文件最后都会有一个通用匹配规则,当其他匹配规则均失效时,请求会被路由给通用匹配规则处理;如果没有配置通用匹配,并且其他所有匹配规则均失效时,nginx会返回 404 错误

      server {listen       80;server_name www.tangbb.com;location /{default_type text/html;echo "abc...";}
      }
      
    3. 精确匹配

      • 精确匹配使用 = 表示,nginx进行路由匹配的时候,精确匹配具有最高的优先级,请求一旦精确匹配成功nginx会停止搜索其他到匹配项

      server {listen       80;server_name www.tangbb.com;location = /abc {default_type text/html;echo "abc...";}
      }
      

      • 可匹配示例:

      www.tangbb.com/abc
      www.tangbb.com/abc?.…

      • 无法匹配示例:

      www.tangbb.com/abc/
      www.tangbb.com/abc/adcde

  3. 反向代理

    1. 打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页 面中

      • (Linux服务器-208.208.128.122)安装并启动tomcat,并对外开放8080端口
      • (客户机)浏览器验证访问208.208.128.122:8080
      • (客户机)更改host文件,添加一条DNS记录(208.208.128.122   www.123.com)
      • (Linux服务器-208.208.128.122)Nginx配置请求转发

      server {listen 80;server_name 208.208.128.122;location / {root html;proxy_pass http://127.0.0.1:8080index index.html index.htm;}
      }
      

      测试:访问域名为 www.123.com,故访问该域名时会先到linux服务器,再转到本机127.0.0.1:8080路径

      在这里插入图片描述

    2. 简单示例

      • (后端服务器-172.30.128.64)tomcat启动Java项目,指定端口为8081

      在这里插入图片描述

      • (Nginx服务器-172.30.128.65)修改nginx.conf配置文件
        通过upstream指令块定义我们的上游服务器(即被代理的服务器)
        通过location指令块中的proxy_pass指令,指定该location要路由到哪个upstream

      在这里插入图片描述

        来了请求后会通过url路由到对应的location,然后nginx会将请求打到upstream定义的服地址中去

      • (Nginx服务器-172.30.128.65)重新加载nginx配置(nginx -s reload)

      • (Nginx服务器-172.30.128.65)关闭seLinux的限制(setenforce 0)

      • (客户机)更改host文件,添加一条DNS记录(www.proxytest.com),postman测试

      在这里插入图片描述

      • 流程分析
      在这里插入图片描述

    3. 根据访问路径跳转到不同端口的服务中
      要求:
        nginx监听端口8001
        访问http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081
        访问 http://127.0.0.1:8001/vod/ 直接跳转到 127.0.0.1:8082

      • 准备两个tomcat,一个8081端口,一个8082端口,具体如下:
      –>新建tomcat8081和tomcat8082两个文件夹
      –>将tomcat安装包分别存入并解压(需改对应配置文件),分别启动
      –>

  4. 负载均衡

    1. 轮询策略

      • (后端服务器)启动三个不同端口的服务,别分是8081、8082、8083

      在这里插入图片描述

      • (Nginx服务器)定义我们的上游服务器(即被代理的服务器),将三个ip + 端口放入upstream
      轮询是默认的,所以upstream不需要额外加参数

      在这里插入图片描述

      • (Nginx服务器)重新加载nginx配置(nginx -s reload)
      • (客户机)请求三次,可以看到是按upstream中的先后顺序来进行轮询的

      在这里插入图片描述

    2. 权重策略

      • (Nginx服务器)修改我们的上游服务器(即被代理的服务器)

      在这里插入图片描述

      • (客户机)发送四次请求,可以看到在一轮轮询中,8081命中1次,8082由于配置了 weight=2所以命中了2次,8083命中了1次。即配置了weight=2的8082服务,命中几率是8081或者8083的两倍

      在这里插入图片描述

    3. ip_hash策略

      • (Nginx服务器)修改我们的上游服务器(即被代理的服务器)

      在这里插入图片描述

      • (客户机)发送多次请求,可以看到,由于我的访问ip总是固定的宿主机的172.30.128.64 根据hash算法我的ip被匹配给了8083端口的服务,所以只要我不换ip 不管我请求多少次,请求都是被 转发到了8083的服务上了。

      在这里插入图片描述

    4. least_conn策略

      • (Nginx服务器)修改我们的上游服务器(即被代理的服务器)

      在这里插入图片描述

      最小连接数看不出啥效果,所以就不演示截图了,知道怎么配置最小连接数即可。

  5. 动静分离

    • 编写一个Html页面(index_page.html)并上传到虚拟机

    在这里插入图片描述

    • (Nginx服务器)配置俩location规则,一个( /frontend )是读取静态文件,一个(/backend)是转发到 我们配置的upstream服务中去。如下:

    在这里插入图片描述

    • (客户机)浏览器输入www.proxytest.com/frontend/ ,可以看到请求返回了一个html页面,其实就是我们刚才的 /usr/local/nginx/test/static/index_page.html文件

    在这里插入图片描述

    • (客户机)调用get请求

    在这里插入图片描述

  6. 跨域

    • nginx.conf 文件配置两个server,分别代表前后端,并且监听的端口以及域名名称都不一致,造成非"同源"场景(重启nginx)

    在这里插入图片描述

    • 修改index_page.html中的后端地址

    在这里插入图片描述

    • (客户机)更改host文件,添加一条DNS记录

    172.30.128.65 www.front.com
    172.30.128.65:90  www.backend.com
    

    • 浏览器复现

    在这里插入图片描述

    可以看到浏览器提示我们受同源规则影响我们不能跨域访问资源。造成的原因是我的两个域名解析出来的端口不一致 一个是80一个是90。不符合同源策略,所以必然会有跨域报错。
    • 修改配置文件,让一个server配置多个location(重启Nginx)

    在这里插入图片描述
    • 测试页面 www.xxxadminsystem.com/page/ (成功返回页面)

    在这里插入图片描述

    • 调用get请求(请求成功)

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 简单模拟实现 STL 中的 list 与 queue

目录 一,list 1, list 的节点与迭代器 2,list 的数据结构、一些简单的功能、构造函数 3,list 的对元素操作 4,C 11 的一些功能 5,完整代码: 二,queue 一,list std…

开源 OLAP 及其在不同场景下的需求

目录 一、开源 OLAP 综述 二、OLAP场景思考 2.1 面向客户的报表 2.2 面向经营的报表 2.3 末端运营分析 2.4 用户画像 2.5 订单分析 2.6 OLAP技术需求思考 三、开源数据湖/流式数仓解决方案 3.1 离线数仓体系——Lambda架构 3.2 实时数据湖解决方案 3.3 实时分析解决…

Java毕业设计-基于springboot开发的校园台球厅人员与设备管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、管理员功能模块3、用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的校园台球厅人…

Linux-1.常见指令以及权限理解

目录 本节目标 使用 XShell 远程登录 Linux 关于 Linux 桌面 下载安装 XShell 查看 Linux 主机 ip 使用 XShell 登陆主机 XShell 下的复制粘贴 Linux下基本指令 登录Linux服务器 新建多用户 全屏 1.快速认识5~6个命令 2.详细谈论课件的所有指令 01. ls 指令 02…

初识redis(一)

前言 引用的是这本书的原话 Redis[1]是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列…

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查 关系数据库 关系对象数据库(ORM) 应用偏好数据库 分布式数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。HarmonyOS关系型…

Pandas与Jupyter Notebook的完美结合【第153篇—数据分析】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 利用Python进行数据分析:Pandas与Jupyter Notebook的完美结合 在数据科学和分析…

职场口才提升之道

职场口才提升之道 在职场中,口才的重要性不言而喻。无论是与同事沟通协作,还是向上级汇报工作,亦或是与客户洽谈业务,都需要具备良好的口才能力。一个出色的职场人,除了拥有扎实的专业技能外,还应具备出色…

web自动化测试系列-selenium的安装和运行(一)

目录 web自动化系列之如何安装selenium 1.web自动化中的三大亮点技术 2.web自动化能解决什么问题 ? 3.为什么是selenium ? 4.selenium特点 5.selenium安装 6.下载浏览器及驱动 7.测试代码 web自动化系列之如何安装selenium web自动化 ,一个老生…

【C++】vector介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. vector的介绍3. Member functions3.1 (constructor)3.2 (destructor) 4. Capacity4.1 resize4.2 reserve4.3 shrink_to_fit 5. vector 增删查改5.1 push_back5.2 insert5.3 pop_back5.4 find5.5 erase 1. 前…

【C++】模板与泛型编程

文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 4. 非类型模板参数5. 模板的特化5.1 概念5.2 函数模板特化5.3 全特化5.4 偏特化5.5 类模板…

Docker 搭建Redis集群

目录 1. 3主3从架构说明 2. 3主3从Redis集群配置 2.1关闭防火墙启动docker后台服务 2.2 新建6个docker容器实例 2.3 进去任意一台redis容器,为6台机器构建集群关系 2.4 进去6381,查看集群状态 3. 主从容错切换迁移 3.1 数据读写存储 3.1.1 查看…

【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

java switch用法

满足那个条件,就从那个入口进入,没有break就继续(是这样设计的,需要自己加break;),一般都是要加break的。 switch (表达式) 表达式只能是【整型、char、String.】 import java.util.Scanner;public class…

微服务day07 -- ES集群

4.集群 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数…

Review(一)

🌈个人主页:Rookie Maker 🔥 系列专栏:Rookie review 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x1f601…

DRC检查及丝印的调整

DRC检查及丝印的调整 综述:本文主要讲述AD软件中DRC检查、丝印的调整以及logo的添加的相关步骤,附加logo添加的脚本链接和大量操作图片,使步骤详细直观。 1. 点击“工具”→“设计规则检查”→“运行DRC”。(一开始可以只开启电…

一个程序从编译到运行的全过程

一个程序从编译到运行的全过程 一个程序从编译到运行的全过程编译预处理编译 汇编链接载入虚拟内存用户空间 总结 一个程序从编译到运行的全过程 每次用编译器写完一个程序后,我们会进行调试和执行,将代码的结果输出在我们的电脑屏幕上,但是…

Python爬虫学习完整版

一、什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析也成为如今主流的爬取策略。 1 爬虫可以做什么 你可以爬取网络上的的图片&#…

全民采矿石赚钱小程序源码,附带详细搭建教程

安装教程 1、环境用宝塔Nginxphp7.0或者以下版本 2、可以更换各种模板,懂代码和标签的可以改模板,不懂的可以直接上站 3、上站前记得添加关键词和内容库 4、伪静态在绑定完百度站长之后再添加 目录说明: data/keyword 放关键词 标签&#xff…