Web缓存服务——Squid代理服务器应用

news2024/12/27 16:32:56

 正向代理:代替客户端向服务端发送请求。

反向代理:代理服务端,将请求转发给多个服务端。

一、Squid代理服务器介绍

Squid 主要提供缓存加速、应用层过滤控制的功能。

1.1 代理的工作机制(缓存网页对象,减少重复请求)

  1. 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
  2. 将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

1.2 代理服务器的概念及其作用

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。

缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。

其主要作用有:

  • 资源获取: 代替客户端实现从原始服务器的资源获取;
  • 加速访问: 代理服务器可能离原始服务器更近,从而起到一定的加速作用;
  • 缓存作用: 代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取;
  • 隐藏真实地址: 代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息。

最基本的作用:提高web访问速度,隐藏客户机的真实IP地址。

1.3 Squid 代理的类型

传统代理: 适用于Internet 正向代理,需在客户机指定代理服务器的地址和端口。

透明代理: 客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理。

反向代理: 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

 二、Squid 服务的安装和运行

1. 编译安装Squid

#关闭防火墙和selinux
 [root@zy1 ~]# systemctl disable --now firewalld
 [root@zy1 ~]# setenforce 0
 ​
 #安装环境依赖包
 [root@zy1 ~]# yum -y install gcc gcc-c++ make 
 #解压squid安装包
 [root@zy1 ~]# tar zxvf squid-3.5.28.tar.gz -C /opt/ 
 #切换到源码包目录,设置安装路径和安装模块
 [root@zy1 ~]# cd /opt/squid-3.5.28 
 ​
 [root@zy1 ~]# ./configure --prefix=/usr/local/squid \      #指定安装目录路径
 --sysconfdir=/etc \                         #指定配置文件路径
 --enable-arp-acl \                          #MAC地址管控,防止客户端使用IP欺骗
 --enable-linux-netfilter \                  #使用内核过滤
 --enable-linux-tproxy \                     #支持透明模式
 --enable-async-io=100 \                     #异步IO,提升存储性能。先写入缓存,再写入硬盘
 --enable-err-language="Simplify_Chinese" \  #错误信息的显示语言
 --enable-underscore \                       #允许URL中有下划线
 --disable-poll \                            #关闭默认使用 poll 模式
 --enable-epoll \        #开启epoll模式提升性能,epoll模式可以支持IO多路复制,异步非阻塞
 --enable-gnuregex                           #使用GNU正则表达式
 ​
 ​
 [root@zy1 ~]# make -j2 && make install     #开2核编译安装
 ​
 [root@zy1 ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/   #优化路径,使系统直接能够识别squid命令
 [root@zy1 ~]# useradd -M -s /sbin/nologin squid             #创建squid用户,不创建家目录,不可登录系统
 [root@zy1 ~]# chown -R squid:squid  /usr/local/squid/var/   #修改属主属组,此目录用于存放缓存文件

2. 修改 Squid 的配置文件

[root@zy1 ~]# vim /etc/squid.conf
 ......
 --56行--插入
 http_access allow all    #放在 http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
 http_access deny all
 http_port 3128           #用来指定代理服务监听的地址和端口(默认的端口号为 3128)
 --61行--插入
 cache_effective_user squid      #添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动
 cache_effective_group squid     #添加,指定账号基本组
--68行--修改 
coredump_dir /usr/local/squid/var/cache/squid     #指定缓存文件目录。默认有这一行,一般不做修改

3. Squid 的运行控制

#检查配置文件语法是否正确
 [root@zy1 ~]# squid -k parse
 ​
 #启动 Squid,第一次启动 Squid 服务时,会自动初始化缓存目录
 [root@zy1 ~]# squid -z        #-z 选项用来初始化缓存目录
 [root@zy1 ~]# squid           #启动 squid 服务
 ​
 [root@zy1 ~]# netstat -anpt | grep "squid"    #查看是否启动成功

4. 创建 Squid 服务脚本(将Squid加入系统服务管理)

 [root@zy1 ~]# vim /etc/init.d/squid
 #!/bin/bash
 #chkconfig: 2345 90 25
 ​
 PID="/usr/local/squid/var/run/squid.pid"
 CONF="/etc/squid.conf"
 CMD="/usr/local/squid/sbin/squid"
 ​
 case "$1" in
    start)
      netstat -natp | grep squid &> /dev/null
      if [ $? -eq 0 ]
      then
        echo "squid is running"
      else
        echo "正在启动 squid..."
        $CMD
      fi
    ;;
    stop)
      $CMD -k kill &> /dev/null
      rm -rf $PID &> /dev/null      #kill命令杀死进程,不会删除PID文件,需要手动删除PID文件,不然下次启动会有问题
    ;;
    status)
      [ -f $PID ] &> /dev/null
         if [ $? -eq 0 ]
           then
             netstat -natp | grep squid
           else
             echo "squid is not running"
         fi
    ;;
    restart)
       $0 stop &> /dev/null
       echo "正在关闭 squid..."
       $0 start &> /dev/null
       echo "正在启动 squid..."
    ;;
    reload)
       $CMD -k reconfigure
    ;;
    check)
       $CMD -k parse
    ;;
    *)
       echo "用法:$0 {start|stop|status|reload|check|restart}"
    ;;
 esac
 ​
 #2345是默认自启动的运行级别,如是-代表任何运行级别都不自启动;90是启动优先级,25是停止优先级,优先级范围是0-100,数字越大,优先级越低。
 ​
 ​
 [root@zy1 ~]# chmod +x /etc/init.d/squid      #为脚本增加执行权限
 [root@zy1 ~]# chkconfig --add squid           #加入系统服务管理
 [root@zy1 ~]# chkconfig --list squid          #查看在哪些运行级别下自动启动

三、构建传统代理服务器(正向代理)

该模式是客户已知有这个代理服务器,需要手动在浏览器中设置使用。

Squid代理服务器:192.168.126.21

web服务器:12.0.0.12

客户机:192.168.126.27

1、代理服务器,编辑配置文件
 [root@zy1 ~]# vim /etc/squid.conf
 ......
 http_access allow all
 http_access deny all
 http_port 3128
 cache_effective_user squid
 cache_effective_group squid
 --63行--插入
 cache_mem 1024 MB               
 #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
 reply_body_max_size 100 MB          
 #允许用户下载的最大文件大小,以字节为单位,当下载超过指定大小的Web对象时,浏览器的报错页面中会出现“请求或访问太大”的提示。默认设置0表示不进行限制,若不限制需要将此行注释掉。
 maximum_object_size 100 MB          
 #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户。使用不多的大文件,则直接由web服务器响应,减少占用缓存服务器的空间
 ​
 [root@zy1  ~]# service squid restart   #重启squid服务
 ​
 #生产环境中还需要修改防火墙规则
 [root@zy1  ~]# iptables -F
 [root@zy1  ~]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    #允许tcp协议3128端口的流量通过
 ​
 2、web服务器安装apache
 [root@web1 ~]# systemctl stop firewalld
 [root@web1 ~]# setenforce 0
 [root@web1 ~]# yum install -y httpd
 [root@web1 ~]# systemctl start httpd
 [root@web1 ~]# echo "this is web test" > /var/www/html/index.html
 ​
 3、客户机的代理配置,访问web服务器
 打开浏览器,工具-->Internet选项-->连接-->局域网设置-->开启代理服务器
 (地址:Squid服务器IP地址,端口:3128)
 ​
 4、查看 Squid 访问日志的新增记录中的缓存命中情况
 [root@zy1  ~]# tail -f /usr/local/squid/var/logs/access.log
 TCP_MISS/200      #表示未命中缓存       
 TCP_MEM_HIT/200   #表示命中缓存
 ​
 5、查看 Web 访问日志的新增记录
 [root@web1 ~]# tail -f /var/log/httpd/access_log
 在浏览器输入Web服务器IP地址访问,查看Web服务器访问日志,显示的是由代理服务器替客户机在访问。地址不是真实的客户端地址,而是代理服务器地址。

第一次访问和第二次、第三次访问,会明显地感觉到访问速度的不同,因为第一次是经过代理服务器访问web服务器,能明显感觉到停滞了1秒,而第二次访问开始,就是一瞬间,页面就加载出来了,因为通过第一次的访问,代理服务器已经将这条访问信息记录到了本地的缓存中,第二次及之后的访问都是直接从缓存中获取数据,而不再经过代理服务器去访问web服务器。

四、构建透明代理服务器(代理服务器作为网关服务器)

 

透明代理的要求:

  • 要求代理服务器是网关服务器。
  • 网关服务器至少双网卡,开启路由转发功能。
  • 防火墙iptables/firewalld 设置重定向规则。

实验环境:

Squid服务器:内网ens33:192.168.126.21,外网ens36:12.0.0.1

Web 服务器:12.0.0.12/24

客户机:192.168.126.27

squid服务器添加一块网卡ens36(有的机器显示ens35或ens33,用ifconfig查看)

 -----1、Squid服务器配置-----
 [root@zy1 ~]# vim /etc/squid.conf       #编辑配置文件
 ......
 http_access allow all
 http_access deny all
 #--60行--修改添加提供内网服务的IP地址,和支持透明代理选项 transparent
 http_port 192.168.126.21:3128 transparent  
 #填写对接客户端网段的网卡地址,即内网卡地址。监听自己内网网卡的地址,并支持透明代理选项 transparent
 ​
 [root@zy1 ~]# systemctl restart squid    #重启squid服务
 ​
 #开启路由转发,实现本机中不同网段的地址转发
 [root@zy1 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
 [root@zy1 ~]# sysctl -p
 ​
 #修改防火墙规则,设置重定向规则
 [root@zy1 ~]# iptables -F
 [root@zy1 ~]# iptables -t nat -F
 #用于转发http协议。80端口重定向到3128端口,由代理服务器进行请求
 [root@zy1 ~]# iptables -t nat -A PREROUTING -i ens33 -s 192.168.126.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
 #用于转发https协议。443端口重定向到3128端口,由代理服务器进行请求
 [root@zy1 ~]# iptables -t nat -A PREROUTING -i ens33 -s 192.168.126.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
 #接受tcp协议的3128端口传入的数据
 [root@yuji ~]# iptables -A INPUT -p tcp --dport 3128 -j ACCEPT  
 ​
 
 -----2、Web服务器配置-----
 [root@web1 ~]# systemctl stop firewalld
 [root@web1 ~]# setenforce 0
 [root@web1 ~]# yum install -y httpd
 [root@web1 ~]# systemctl start httpd
 [root@web1 ~]# echo "this is web test" > /var/www/html/index.html
 ​
 
 -----3、客户机配置,修改网关地址,浏览器不使用代理-----
 网关地址修改为代理服务器的内网网卡地址:192.168.126.21
 ​
 关闭客户机的浏览器之前设置的代理服务器的功能后,访问 http://12.0.0.12
 ​
 ​
 #查看 Squid 访问日志的新增记录
 [root@zy1 ~]# tail -f /usr/local/squid/var/logs/access.log
 1654584356.658    231 192.168.126.22 TCP_MISS/200 290 GET http://detec tportal.firefox.com/success.txt - ORIGINAL_DST/34.107.221.82 text/pla in      #第一次访问未命中缓存
 1654584383.003      0 192.168.126.22 TCP_MEM_HIT/200 341 GET http://12 .0.0.12/ - HIER_NONE/- text/html   #第二次访问命中缓存
 ​
 ​
 #查看 Web 访问日志的新增记录,显示的是由代理服务器的外网口代替客户机在访问
 [root@web1 ~]# tail -f /var/log/httpd/access_log

五、ACL访问控制

在配置文件 squid.conf 中,ACL 访问控制通过以下两个步骤来实现:

(1)使用 acl 配置项定义需要控制的条件;

(2)通过 http_access 配置项对已定义的列表做“允许”或“拒绝”访问的控制。

定义访问控制列表:

 格式:
 acl 列表名称 列表类型 列表内容 …

1. ACL配置说明

 1、编辑配置文件,定义控制访问列表
 [root@zy1 ~]#vim /etc/squid.conf
 ......
 acl localhost src 192.168.126.22/32              #客户机源地址为 192.168.126.22
 acl MYLAN src 192.168.126.0/24 192.168.1.0/24    #客户机网段
 acl destinationhost dst 192.168.126.26/32        #目标地址为 192.168.126.26
 acl MC20 maxconn 20                             #最大并发连接 20
 acl PORT port 21                                #目标端口 21
 acl DMBLOCK dstdomain .qq.com                   #目标域,匹配域内所有站点
 acl BURL url_regex -i ^rtsp:// ^emule://    #以 rtsp://、emule:// 开头的目标 URL地址,-i表示忽略大小写。匹配正则表达式
 acl PURL urlpath_regex -i .mp3$ .mp4$ .rmvb$     #以 .mp3、.mp4、.rmvb 结尾的目标 URL 路径
 acl WORKTIME time MTWHF 08:30-17:30              #时间为周一至周五 8:30~17:30,“MTWHF”为周一至周五的英文首字母
 ​
 http_access deny(或allow) destinationhost  #注意,如果是拒绝列表,需要放在http_access allow all前面
 ​
 ​
 2、重启服务
 [root@zy1 ~]#systemctl restart squid
 ​
 ​
 3、使用客户机192.168.126.22进行访问
 浏览器访问Web服务器 http://192.168.126.26,显示被访问被拒绝。
 ​
 ​
 ​
 ----------------- # 启动对象列表管理 #--------------
 #如果需要管理的地址很多,可以将多个地址先写在一个文件里
 ​
 #启动对象列表管理
 mkdir /etc/squid
 vim /etc/squid/dest.list    #写一个地址管理列表
 192.168.126.22
 192.168.1.0/24
 ​
 #编辑配置文件
 vim /etc/squid.conf        
 ......
 acl destinationhost dst "/etc/squid/dest.list"  #调用指定文件中的列表内容
 ......
 http_access deny(或allow) destinationhost  #注意,如果是拒绝列表,需要放在http_access allow all前面

2. ACL访问控制操作实例

1、编辑配置文件,定义控制访问列表
 [root@zy1 ~]# vim /etc/squid.conf
 ......
  25 acl CONNECT method CONNECT
  26 acl myhost src 192.168.126.22/32   #定义列表名称为myhost,源址为192.168.126.22
  27
  28 http_access deny myhost           #拒绝myhost列表中的地址进行访问
  #注意,拒绝列表需要放在http_access allow all前面
 ​
 ​
 2、重启squid服务
 [root@zy1 ~]# systemctl restart squid
 ​
 ​
 3、使用客户机192.168.126.22进行访问
 浏览器访问Web服务器 http://12.0.0.12,显示被访问被拒绝。

六、Squid 反向代理

1 反向代理工作机制

如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

静态内容/可缓存内容,如果已写入缓存,由缓存服务器提供。动态内容,由代理服务器转发给web服务器进行请求。

工作机制:

  • 缓存网页对象,减少重复请求。
  • 将互联网请求轮训或按权重分配到内网Web服务器。
  • 代理用户请求,避免用户直接访问Web服务器,提高安全。

 

2. 构建 Squid 反向代理服务器

实验环境:

squid服务器:192.168.126.21

web1服务器:192.168.126.23

web2服务器:192.168.126.24

客户机:192.168.126.27

1)缓存服务器配置

 [root@zy1 ~]# vim /etc/squid.conf
 ......
 #--60行--修改,插入以下几行
 http_port 192.168.126.21:80 accel vhost vport
 cache_peer 192.168.126.23 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
 cache_peer 192.168.126.24 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
 cache_peer_domain web1 web2 www.yuji.com
 #表示对www.yuji.com的请求,由squid向192.168.72.60和192.168.72.40的80端口发出请求
 ​
 ---------------- 虚线内是注释 ----------------------------------------------------------------------------------------
 http_port 80 accel vhost vport 
 ##squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据、要么向绑定的端口直接请求数据。
 accel :反向代理加速模式。
 vhost :支持域名或主机名来表示代理节点。
 vport :支持IP和端口来表示代理节点。
 ​
 parent :代表为父节点,上下关系,非平级关系。
 80 :代理内部web服务器的80端口。
 0 :没有使用icp(电信运营商),表示就一台squid服务器。
 no-query :不做查询操作,直接获取数据。
 originserver :指定是源服务器。
 round-robin :指定 squid 通过轮询方式将请求分发到其中一台父节点。
 max_conn :指定最大连接数。
 weight : 指定权重。
 name :设置别名。
 ----------------------------------------------------------------------------------------------------------
 ​
 ​
 #清空之前透明模式配置的 iptables 规则
 [root@zy1 ~]# iptables -F
 [root@zy1 ~]# iptables -t nat -F
 ​
 ​
 [root@zy1 ~]# netstat -natp | grep :80   #检查一下80端口是否被占用,如果被占用,需要关闭httpd
 [root@zy1 ~]# systemctl stop httpd       #防止 httpd 服务使用的 80 端口号和 squid 反向代理配置的监听端口冲突
 [root@zy1 ~]# systemctl restart squid    #重启squid服务

2)后端两台节点服务器配置

 systemctl stop firewalld
 setenforce 0
 yum install -y httpd
 systemctl start httpd
 ​
 #节点1:
 echo "this is web test1" > /var/www/html/index.html
 #节点2:
 echo "this is web test2" > /var/www/html/index.html
 echo "I am test02" > /var/www/html/test.html

3)客户机的域名映射配置,进行访问验证

 windows系统,修改 C:\Windows\System32\drivers\etc\hosts 文件
 192.168.126.21 www.ky.com
 ​
 Linux系统,修改/etc/hosts文件,添加映射关系
 echo "192.168.126.21 www.ky.com" >>/etc/hosts  #squid服务器地址
 ​
 浏览器不开启代理访问 
 http://www.ky.com
 http://www.ky.com/test.html
 ​
 squid服务器查看缓存命中情况:
 [root@zy1 ~]# tailf /usr/local/squid/var/logs/access.log
 1654596933.113      1 192.168.126.27 TCP_MISS/404 448 GET http://www.ky.com/favicon.ico - ROUNDROBIN_PARENT/192.168.126.24 text/html
 1654597006.164      0 192.168.126.27 TCP_MEM_HIT/200 339 GET http://www.ky.com/ - HIER_NONE/- text/html
 1654597006.257      2 192.168.126.27 TCP_MISS/404 448 GET http://www.ky.com/favicon.ico - ROUNDROBIN_PARENT/192.168.126.22 text/html
 1654597006.279      1 192.168.126.27 TCP_MISS/404 448 GET http://www.ky.com/favicon.ico - ROUNDROBIN_PARENT/192.168.126.24 text/html
 ​
 #TCP_MEM_HIT/200 表示命中缓存
 #ROUNDROBIN_PARENT/192.168.126.22  自动轮询,实现负载均衡
 #ROUNDROBIN_PARENT/192.168.126.24  自动轮询,实现负载均衡

注:

1、squid服务器的缓存日志含义

MISS:未命中缓存

HIT:命中缓存

EXPIRED:缓存过期

STALE:命中了陈旧缓存

REVALIDDATED:Nginx验证陈旧缓存依然有效

UPDATING:内容陈旧,但正在更新

BYPASS:X响应从原始服务器获取

2、Squid、Varinsh和Nginx有什么区别, 工作中你怎么选择?

Squid、Varinsh和Nginx都是代理服务器。

2.1 什么是代理服务器:

代理服务器能代替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户。当本地没有的时候,我代替你去访问公网,我接收你的请求,我先在我自己的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你;如果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网。

2.2 Squid、Varinsh和Nginx的区别:

1)varnish和squid是专业的cache服务,而nginx是由第三方模块完成。

2) Nginx主要作web应用,以及反向代理。

nginx作为缓存代理服务器,轻量级,安装和配置方便,节约资源。但通过第三方模块来实现,功能较少,应用场景比较少。

3)Varnish是一款高性能的、开源的反向代理服务器和换成服务器。 (只支持反向代理)

优点:

  • Vanish具有更好的稳定性、更快的访问速度、更多的并发连接支持数。
  • 可以通过管理端口来管理缓存,使用正则表达式批量清除部分缓存,而Squid做不到。

缺点:

  • 在高并发状态下,Vanish消耗更多的CPU、I/O和内存资源。
  • 只能将缓存内容存在内存中,内存缓存限制了其容量。
  • Vanish进程一旦挂起、崩溃或者重启,缓存的数据会从内存中释放,此时所有的请求都会转发到后端服务器上,给后端服务器造成很大压力。

4)Squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境。

Squid是比较传统的代理技术,可以将缓存数据持久化,即存储到硬盘中。支持正向代理和反向代理。模式众多(传统模式、透明模式、反向代理)。

工作中选择: 复杂场景需要选择专业的cache服务,优先选择squid或者varnish。

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

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

相关文章

2023年,Facebook Messenger群发这样做

使用SaleSmartly的企业都知道,SaleSmartly(ss客服)能在 Facebook Messenger群发信息!Facebook Messenger在全球最受欢迎通信软件中排名第三,紧追头两位的 WhatsApp和微信。善用 Facebook Messenger群发工具&#xff0c…

华为OD机试真题 Java 实现【区块链文件转储系统】【2023Q2 200分】

一、题目描述 区块链底层存储是一个链式文件系统,由顺序的N个文件组成,每个文件的大小不一,依次为F1,F2…Fn。 随着时间的推移,所占存储会越来越大。 云平台考虑将区块链按文件转储到廉价的SATA盘,只有连续的区块链…

为什么都在学python?

自然是因为Python简单易学且应用领域广! Python近段时间一直涨势迅猛,在各大编程排行榜中崭露头角,得益于它多功能性和简单易上手的特性,让它可以在很多不同的工作中发挥重大作用。 正因如此,目前几乎所有大中型互联…

毕业三年月薪才21K,真是没出息......

“害,毕业三年月薪才拿21k,真失败,真的给同龄人拖后腿!”这是人能讲出来的话?这就是凡尔赛天花板?这就是我公司的测试部门的人说出来的话,他计算机专业毕业三年,包括实习,在我们公司…

LeetCode:28. 找出字符串中第一个匹配项的下标

28. 找出字符串中第一个匹配项的下标 1)题目2)代码1.方法一:每个字符进行匹配2.方法二:截取字符串进行匹配 3)结果1.方法一结果2.方法二结果 1)题目 给你两个字符串 haystack 和 needle ,请你在…

Dropwizard 开发环境搭建

Dropwizard是一个Java框架,其目标是提供高性能、高可靠的Web 应用程序的实现。 一、使用Maven原型创建项目 1、新建项目->选择Maven Archetype 填写好项目名称、路径、选择JDK版本,这里使用JDK11及以上的版本,如下图所示: 2…

自监督对比学习系列论文(一):无引导对比学习--MOCO,SimCLR

自监督对比学习 对比学习(self-supervised learning)的应用场景是用无标记或者少标记的数据进行模型的预训练以得到一个较好的预训练模型,然后便可将该模型轻松的迁移到到下游任务上。显而易见的,对比学习的难点在于我们如何在没有…

【论文下饭】PatchTST中的channel-independence

PatchTST中的channel-independence 总结PatchingChannel-independence A Time Series is Worth 64 Words: Long-term Forecasting with Transformers 时间:2022 引用:8 ICLR 2023 代码:https://github.com/yuqinie98/PatchTST 中文参考&#…

软件开发人技能变现方案来啦~

java单体服务Uniapp客户端 欢迎大家来关注java单体服务Uniapp客户端模式开发应用程序这个模式下产品的特点互联网大厂产品特点小服务小产品-存在价值普通人慢慢挣小钱 欢迎大家来关注 你好! 这可能是你第一次来“莹未来”这里,郑重欢迎您。如果你想学习…

firewalld防火墙详细介绍

目录 一、firewalld概述 二、firewalld与iptables的区别 1.位置不同 2.配置存储位置不同 3.规则运行不同 4.防火墙类型不同 三、firewalld区域的概念 四、firewalld防火墙9个区域 1、trusted(信任区域) 2、public(公共区域&#xf…

JavaScript中的tab栏切换制作(排他思想)

文章目录 实现效果图排他思想tab栏切换制作思路代码部分 实现效果图 整个页面分为2个部分,tab_list部分(上半部分)和tab_con部分(下半部分) tab_list部分包含5个li,它们分别与tab_con部分的5个div盒子一一…

Eyeshot Fem 2023.1 你选Fem还是Ultimate Crack

Eyeshot Fem--当然选Fem Everything in Ultimate, plus Geometry meshing and Finite Element Analysis. Scope Modules Image Gallery Features Scope Eyeshot Fem edition is designed for Geometry meshing and Finite Element Analysis. Modules Geometric modules includ…

《终结拖延症》重新拥有计划每天的自信和控制力

关于作者 威廉区瑙斯, 美著名心理治疗 专家 , 拥有 超过 30 年 心的 理治疗 经 ,验 他 专 精的研究 领域 , 是 为 代 都 市 群提 供负 面 心 理 引 导 和 治疗 , 比 如 抑郁 、 心 理 亚健 康 、 拖 延 症 等 等 。 除…

redis未授权访问漏洞利用+redis日志分析

redis未授权访问漏洞利用redis日志分析 redis未授权访问 远程连接redis kali: redis-cli -h IP redis常用语句 set key “value” 设置键值对 get key 获得值 incr intkey 数字类型值加1 keys * 获取当前数据库中所有的键 config set dir /home/test 设置工作目录 config set…

VMware ESXi 6.5 U3 Final - ESXi 6 系列最终版下载

VMware ESXi 6.5 U3 Final - ESXi 6 系列最终版下载 VMware ESXi 6 Standard 请访问原文链接:https://sysin.org/blog/vmware-esxi-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VersionRelease NameRelease …

weblogic CVE-2014-4210 SSRF漏洞

CVE-2014-4210 SSRF漏洞 Weblogic 中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而可以攻击内网中Redis、Fastcgi等脆弱组件 该漏洞存在于/uddiexplorer/SearchPublicRegistries.jsp SSRF:服务端请求伪造,伪造存在该漏洞…

Spring : XML配置 JavaBean源码解析

文章目录 前言一、xml 加载 Bean 对象总结XML加载Bean对象 前言 跟着大佬走!!!! https://github.com/DerekYRC/mini-spring 提示:以下是本篇文章正文内容,下面案例可供参考 一、xml 加载 Bean 对象 大家先…

企业型OV,增强型EV证书开通审核流程

选购 OV、EV型证书需要是企业用户,申请过程中需要提交企业资料。 选择证书品牌及型号 管理中心补全审核资料 下载“确认函”签字盖章并扫描,再上传。 审核部门联系确认企业信息,(过需要7-10个工作日) 审核通过&…

单商户高级版商城系统v2.3.0更新啦~

​likeshop单商户高级版商城系统更新至v2.3.0版本~主要更新内容如下: 新增 商品增加限购功能 小程序新版本更新提示 商品分类创建后可以显示该分类下有多少商品 积分商品列表新增封面图 商品支持批量移动分类 后台产品正版检测 优化 分销功能关闭时&#xff…

网络安全 2023 年为什么如此吃香?事实原来是这样....

前言 “没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万…