lighttpd配置

合集下载

nginx配置文件使用环境变量的操作方法

nginx配置文件使用环境变量的操作方法

nginx配置⽂件使⽤环境变量的操作⽅法前⾔Nginx是⼀款⾯向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性⾼等优势。

由于现在需要部署nginx的docker,希望nginx配置⽂件⾥⾯有关server_name在启动容器前动态修改。

但是由于nginx的配置⽂件不⽀持使⽤环境变量。

⽹上找了好些⽅案,最终选择使⽤envsubst的⽅式改写nginx配置⽂件。

⼯作原理Nginx由内核和模块组成,其中,内核的设计⾮常微⼩和简洁,完成的⼯作也⾮常简单,仅仅通过查找配置⽂件将客户端请求映射到⼀个location block(location是Nginx配置中的⼀个指令,⽤于URL匹配),⽽在这个location中所配置的每个指令将会启动不同的模块去完成相应的⼯作。

Nginx的模块从结构上分为核⼼模块、基础模块和第三⽅模块:核⼼模块:HTTP模块、EVENT模块和MAIL模块基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,第三⽅模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

学习envsubstenvsubst就是将环境变量替换⽂件⾥⾯指定标记的值。

例如有如下⽂件env.conf,内容如下[test]ip = ${ip}port = ${port}url = http://${ip}:${port}/index.htmlphone = ${phone}当执⾏export ip=192.168.1.5,export port=8081,export phone=135********写⼊环境变量。

然后执⾏envsubst < env.conf > env.new.conf,就可以⽣成如下的env.new.conf[test]ip = 192.168.1.5port = 8081url = http://192.168.1.5:8081/index.htmlphone = 135********还可以指定只替换部分环境变量,source env.env && envsubst '$ip;$phone' < env.conf,这样只会替换ip和phone这两个变量。

FTP服务器 Xlight 安装配置手册

FTP服务器 Xlight 安装配置手册

FTP服务器Xlight 安装配置手册
1、运行Xlight.exe 即可开启FTP服务,成功后右下角驻留一个绿色或黄色的图标,
显示为红色的说明还没有配置好。

2、首次运行后界面如下:
点击添加一个虚拟服务器:
输入主机IP,其余不变(端口不变21):
选中刚添加的节点,添加用户:
再点,输入用户名和密码,在选一个目录:(用户登陆后进入该目录)
添加用户后在列表中可见:
点右键选择“编辑”:
下面设置该用户的权限:
在“用户路径”选项中:
选中主目录,点“”进行配置:
默认的是只能下载,不能上传,创建目录等,根据需要进行设置。

无特殊需求,其他的参数不用设置了。

== 基本配置结束==
如何访问:
打开资源管理器:地址栏访问ftp://192.168.0.28
输入刚建好的用户名和密码即可。

访问方式跟使用资源管理器一样。

《linux服务器配置与管理》教案06-任务六 FTP 服务的配置与管理

《linux服务器配置与管理》教案06-任务六  FTP 服务的配置与管理
2.在教学平台上学习教材电子版和课件。
教学过程
师生活动:
一、复习提问
1.NFS服务器的配置与调试方法
2.NFS客户端的配置方法
3.NFS故障排除的技巧
二、导入新课
文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。
3.建立2个本地用户:schema、cookie,密码与用户名同名,在根目录下建立与两个用户同名的目录。本地用户schema、cookie只能登录到对应的/schema、/cookie目录,不能切换到指定目录以外的目录。
4.限制最多3个用户登录ftp服务,并设置开机自动加载该服务。
学生活动:观看教师演示、边学边做、思考、讨论、完成任务实践
三、讲授新课
(1)公司现有多个部门多个员工,因工作需要,只允许ftpuser1和ftpuser2这两个虚拟用户具有FTP服务器的上传和下载管理,其他用户只具有浏览和下载功能。在 CentOS7.4 系统字符界面服务器上实现。
(2)在 Ubuntu 18.04 系统字符界面界面配置FTP服务。
(1)配置ftp网络软件源;(2)配置ftp本地软件源

伪造无线路由器错误信息来获取无线密码的方法

伪造无线路由器错误信息来获取无线密码的方法

伪造无线路由器错误信息来获取无线密码的方法前言:这篇文章出于我前段时间的一个想法,就是通过伪造无线路由器错误信息来欺骗机主,然后取得无线密码。

后来就不断地试验实践,最后成功了,就有了今天的这篇文章,高三比较忙,所以弄了这么久。

当然我不是为了教会大家破解别人的无线网络而写这篇文章,只是为了让大家了解无线网络的安全问题和交流技术,知道这种技术的原理,才能避免被攻击。

为了便于大多数读者理解,我尽量没有使用很多专业词汇,可能不够严谨,望见谅!本文使用了以下这些开源软件,在这里感谢这些软件的开发者:aircrack-ng: /dnsmasq: /dnsmasq/doc: /lighttpd: /php: /overview:首先简略地说说基本的思路,使用airodump-ng查看有那些客户端正在使用无线网络,然后通过aireplay-ng持续攻击某个AP,使该客户端保持可以搜索到自己的AP,但是又连接不上的状态。

这时我们就马上伪造一个SSID和该AP相同不加密的AP,因为普通的用户都是不懂技术的,正在和MM聊得欢,突然就断开了,这该多恼火~这样一般该机主就会下意识地点击连接我们这个伪造的AP,然后轻而易举地连接上了。

这时机主回到QQ,诶~怎么还是连接不上?然后就打开浏览器随便访问一个网络地址测试一下,这时我们就要让他打开事先准备好的网页,说他的AP出错误了云云,然后然他输入无线密码来重启无线路由器排除故障,他一着急,就输入了自己的无线密码啦~这时密码就会被提交到我们电脑上的php,然后php就把这个密码写入某个文件保存起来,哈哈!不费吹灰之力对吧?然后我们就停止对他AP的攻击,神不知鬼不觉地~机主见恢复正常了,就把这小插曲抛诸脑后啦!这里面也有一点社会工程学的意思。

相关的原理和细节我在后面慢慢和大家叙述。

本文以安装了xubuntu12.04.3的笔记本电脑为系统环境,前段时间我安装了xbuntu13.10,结果各种不稳定各种错误,在Hacking的时候居然在service里面找不到Network-manager,导致Hacking的时候网卡被关闭。

PHP性能调优---PHP-FPM配置及使用总结

PHP性能调优---PHP-FPM配置及使用总结

PHP性能调优---PHP-FPM配置及使⽤总结-FPM配置及使⽤总结:-FPM是⼀个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch 到PHP源代码中,然后再⾏编译才能使⽤。

⽽现在我们可以在PHP 5.3.2及更新版本中直接开启并使⽤即可,因为PHP从该版本已经将其收⼊到软件包中,所以其不再是补丁包的存在了。

· ⼏个概念的理解· Nginx+PHP配置· Php-Fpm的操作⼀、⼏个概念的理解1)、CGICGI全称“公共⽹关接⼝”(Common Gateway Interface),是HTTP服务器与其它机器上的程序进⾏通信的接⼝,其程序须运⾏在⽹络服务器上。

NOTE:CGI可以⽤任何⼀种语⾔编写,只要这种语⾔具有标准输⼊、输出和环境变量。

2)、FastCGIFastCGI是⼀个常驻型的CGI,它可以⼀直执⾏,只要激活后,不会每次都要花费时间去fork⼀次(这是CGI最为⼈诟病的fork-and-execute模式)。

它还⽀持分布式的运算,即 FastCGI 程序可以在⽹站服务器以外的主机上执⾏并且接受来⾃其它⽹站服务器来的请求。

FastCGI是语⾔⽆关的、可伸缩的CGI开放扩展,其主要⾏为是将CGI解释器进程保持在内存中并因此获得较⾼的性能。

我们知道,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保存在内存中并接受FastCGI进程管理器调度,那么就可以提供良好的性能、伸缩性等。

优点:1. FastCGI具有语⾔⽆关性;2. FastCGI独⽴于核⼼web服务器运⾏,提供了⼀个⽐API更安全的环境。

APIs把应⽤程序的代码与核⼼的web服务器链接在⼀起,这意味着在⼀个错误的API的应⽤程序可能会损坏其他应⽤程序或核⼼服务器。

⽽恶意的API的应⽤程序代码甚⾄可以窃取另⼀个应⽤程序或核⼼服务器的密钥;3. FastCGI技术⽬前⽀持语⾔有:C/C++、、Perl、Tcl、、SmallTalk、Ruby等。

服务器大量php-cgi.exe进程,导致CPU占用100的解决

服务器大量php-cgi.exe进程,导致CPU占用100的解决

出现该问题一般为程序方面问题,如程序采用fastcgi方式运行PHP,而程序设置的StartProcesses又偏大,如6甚至更大。

解决参考:1.检查系统盘空间。

查看系统临时文件是否过多,mysql数据库的临时文件默认存到了c:/windows/temp,导致累积了几万甚至上百万的小文件,压垮系统盘。

del *.* 删除所有文件2.PHP是一种广泛使用的动态脚本语言,不过在IIS中并没有内置对PHP语言的支持,因此如果需要使用PHP,必须自行安装。

PHP可以安装为CGI模式或者ISAPI模式,由于ISAPI模式具有更高的性能,因此我建议大家使用ISAPI模式。

3.如能修改程序,建议将程序配置文件中的StartProcesses值缩到2,看是否改善。

4.看是否服务器有问题攻击现象。

windows 2003+IIS6中优化fastcgi配置文件fcgiext.ini,减少php-cgi.exe进程数量和所占内存大小本来听说fastcgi比isapi好就在服务器中装上了,配置环境为windows2003+IIS6+fastcgi(FCGI)+PHP5.2.17,经过与很长一段时间观察,发现工作在FastCGI模式下的PHP会占用越来越多的内存,访问量稍微多点php-cgi进程就多了N个,同样情况下能比原来用isapi模式的时候多出几百M,我的服务器内存只有2G伤不起啊。

我在网上搜索了一下,发现还有不少人面临同样的问题。

来自PHP官方的一个比较正式的解释是:php-cgi进程并没有内存泄漏,php-cgi会在每个请求结束的时候回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。

这样做大概是为了减少内存碎片化或者解决从系统申请内存之后又释放回操作系统所需要的时间不可控问题。

可是如果偶然一次PHP请求使用了诸如ftp或者zlib这样的大内存操作,那么将导致一大块系统内存被php-cgi持续占有,不能被利用。

centos7配置PPTP、L2TP、IPSec服务

centos7配置PPTP、L2TP、IPSec服务

centos7配置PPTP、L2TP、IPSec服务⾸先,推荐跑下⾯的脚本:这个脚本将pptp l2tp ipsec都按照,并且配置好,当然很多配置不准确跑脚本的时候配置好ip规划,PPsk共享秘钥(这个后⾯客户端连接需要⽤到)⽤户名,密码(后⾯连接都需要⽤到)PSK共享秘钥在/etc/ipsec.secrets可以找到和配置⽤户名密码在/etc/ppp/chap-secrets 可以找到配置下⾯的简单修改流程:vim /etc/ipsec.confconfig setup# NAT-TRAVERSAL support, see README.NAT-Traversal#nat_traversal=yes# exclude networks used on server side by adding %v4:!a.b.c.0/24virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12# OE is now off by default. Uncomment and change to on, to enable.#oe=off# which IPsec stack to use. auto will try netkey, then klips then mastprotostack=netkey#force_keepalive=yeskeep_alive=1800conn L2TP-PSK-NATrightsubnet=vhost:%privalso=L2TP-PSK-noNATconn L2TP-PSK-noNATauthby=secretpfs=noauto=addkeyingtries=3rekey=noikelifetime=8hkeylife=1htype=transportleft=47.52.219.118 #这⾥要写外⽹ipleftid=47.52.219.118 #id随便填leftprotoport=17/1701 #端⼝right=%anyrightprotoport=17/%anydpddelay=40dpdtimeout=130dpdaction=clearleftnexthop=%defaultrouterightnexthop=%defaultrouteike=3des-sha1,aes-sha1,aes256-sha1,aes256-sha2_256phase2alg=3des-sha1,aes-sha1,aes256-sha1,aes256-sha2_256sha2-truncbug=yesvim /etc/xl2tpd/xl2tpd.conf[global]; ipsec saref = yeslisten-addr = 外⽹ipauth file = /etc/ppp/chap-secrets (⽤户名密码⽂件)port = 1701[lns default]ip range = 10.81.24.100-10.81.24.199(这个根据⾃⼰的内⽹⽹段和需要的ip数配置)local ip = 10.81.24.1 (分配给⾃⼰的ip)refuse chap = yesrefuse pap = yesrequire authentication = yesname = L2TPVPNppp debug = yespppoptfile = /etc/ppp/options.xl2tpd 这⾥有xl2tpd的⼀些配置length bit = yes⽤户名和密码会保存在这⾥/etc/ppp/chap-secretsvim /etc/ppp/options.xl2tpd#require-pap#require-chap#require-mschapipcp-accept-localipcp-accept-remoterequire-mschap-v2ms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0auth#crtscts #这⼏个注释的是新的配置⾥⾯没有,原来有的,注释掉就正常了#lockhide-password#modemdebugname l2tpdproxyarplcp-echo-interval 30lcp-echo-failure 4mtu 1400noccpconnect-delay 5000vim /etc/pptpd.conf#ppp /usr/sbin/pppdoption /etc/ppp/options.pptpd pptpd的⼀些配置#debug# stimeout 10#noipparamlogwtmp#vrf test#bcrelay eth1#delegate#connections 100localip 10.81.24.2remoteip 10.81.24.200-254vim /etc/xl2tpd/xl2tpd.conf[global]; ipsec saref = yeslisten-addr = 外⽹ipauth file = /etc/ppp/chap-secretsport = 1701[lns default]ip range = 10.81.24.100-10.81.24.199local ip = 10.81.24.1refuse chap = yesrefuse pap = yesrequire authentication = yesname = L2TPVPNppp debug = yespppoptfile = /etc/ppp/options.xl2tpd #这⾥有xl2tpd的⼀些配置length bit = yes系统配置:net.ipv4.ip_forward = 1net.ipv4.conf.all.rp_filter = 0net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.eth1.rp_filter = 0这个允许转发的接⼝要配置好net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0防⽕墙配置创建⽂件/usr/lib/firewalld/services/pptpd.xml并修改:<?xml version="1.0" encoding="utf-8"?><service><short>pptpd</short><description>PPTP</description><port protocol="tcp" port="1723"/></service>创建⽂件/usr/lib/firewalld/services/l2tpd.xml并修改:<?xml version="1.0" encoding="utf-8"?><service><short>l2tpd</short><description>L2TP IPSec</description><port protocol="udp" port="500"/><port protocol="udp" port="4500"/><port protocol="udp" port="1701"/></service>firewall-cmd --reloadfirewall-cmd --permanent --add-service=pptpdfirewall-cmd --permanent --add-service=l2tpdfirewall-cmd --permanent --add-service=ipsecfirewall-cmd --permanent --add-masqueradefirewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -p tcp -i ppp+ -j TCPMSS --syn --set-mss 1356 firewall-cmd --reload开机启动设置:systemctl enable pptpd ipsec xl2tpdsystemctl restart pptpd ipsec xl2tpdipsec检查:全部ok ,碰到不是ok的,就看报错来解决,很多配置以及去掉了会报错Verifying installed system and configuration filesVersion check and ipsec on-path [OK]Libreswan 3.25 (netkey) on 3.10.0-514.26.2.el7.x86_64Checking for IPsec support in kernel [OK]NETKEY: Testing XFRM related proc valuesICMP default/send_redirects [OK]ICMP default/accept_redirects [OK]XFRM larval drop [OK]Pluto ipsec.conf syntax [OK]Two or more interfaces found, checking IP forwarding [OK]Checking rp_filter [OK]Checking that pluto is running [OK]Pluto listening for IKE on udp 500 [OK]Pluto listening for IKE/NAT-T on udp 4500 [OK]Pluto ipsec.secret syntax [OK]Checking 'ip' command [OK]Checking 'iptables' command [OK]Checking 'prelink' command does not interfere with FIPS [OK]Checking for obsolete ipsec.conf options [OK]。

lightproxy用法

lightproxy用法

lightproxy用法lightproxy是一款功能强大的代理工具,可以在开发和调试过程中帮助开发者更轻松地解决网络请求相关的问题。

本文将介绍lightproxy的基本用法,并探讨其在不同情景下的应用。

首先,我们来了解一下lightproxy的基本用法。

在开始使用之前,我们需要先安装和配置lightproxy。

在终端中运行相应的命令,即可完成安装和启动。

安装成功后,lightproxy将默认监听本地的8888端口。

在我们的应用程序中,我们需要将网络请求的代理设置为lightproxy所监听的端口,这样lightproxy才能拦截到请求。

具体的设置方法则因应不同的开发环境而有所不同。

在开发环境中,我们可以通过在浏览器设置中手动配置代理来使用lightproxy。

比如,在Chrome浏览器中,我们可以通过以下步骤进行设置:1. 打开浏览器,点击右上角的菜单按钮,选择“设置”。

2. 在设置页面中,点击左侧的“高级”选项,并展开“系统”。

3. 在“系统”下的“打开您的计算机的代理设置”选项中,选择“打开代理设置”。

4. 在打开的窗口中,勾选“使用代理服务器”,并填写lightproxy监听的地址和端口(通常是localhost:8888)。

5. 点击“确定”保存设置。

在移动端开发中,我们可以通过在设备网络设置中配置代理来使用lightproxy。

具体的设置方法则因移动设备的型号和操作系统版本而有所不同。

我们可以通过搜索引擎查询具体的操作步骤。

使用lightproxy后,我们可以进行各种网络请求的拦截和修改。

我们可以查看请求的详细信息,包括URL、请求方法、请求头、请求体等。

此外,我们还可以修改请求的参数、请求头等内容,以便进行调试和测试。

除了拦截和修改请求,lightproxy还支持自定义规则和脚本的功能。

我们可以通过编写JavaScript代码来实现自定义规则,进一步扩展lightproxy的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

lighttpd缓存配置Lighttpd 缓存再某些情况下,比squid要强大。

1,首先去下载带缓存模块的lighttpd源代码包lighttpd-1.4.26.modcache.v.1.8.3-2.tar.gzwget -S /files/lighttpd-1.4.26.modcache.v.1.8.3-2.tar.gz 2,安装包tar zxvf lighttpd-1.4.26.modcache.v.1.8.3-2.tar.gzcd lighttpd-1.4.26./configure --prefix=/usr/local/lighttpdmakemake install3,拷贝配置文件到指定的目录中cp /usr/local/src/lighttpd-1.4.26/doc/lighttpd.conf /usr/local/lighttpd/lighttpd.conf4,编辑配置文件我的配置文件如下:# lighttpd configuration file############ Options you really have to take care of ####################server.modules = ("mod_rewrite","mod_redirect","mod_access","mod_fastcgi","mod_cache", //这个要开启"mod_proxy", //这个也必须开启,并且要注意顺序"mod_cgi","mod_compress",//支持压缩"mod_expire","mod_accesslog" )server.document-root = "/var/www/html/" /配置文件目录server.errorlog = "/var/log/lighttpd/error.log" //s = ( "index.php", "index.html", "index.htm", "default.htm" )# mimetype mappingmimetype.assign = (".pdf" => "application/pdf",".sig" => "application/pgp-signature",".spl" => "application/futuresplash",".class" => "application/octet-stream",".ps"=> "application/postscript",".torrent" => "application/x-bittorrent",".dvi" => "application/x-dvi",".gz" => "application/x-gzip",".pac"=> "application/x-ns-proxy-autoconfig", ".swf" => "application/x-shockwave-flash", ".tar.gz" => "application/x-tgz",".tgz" => "application/x-tgz",".tar" => "application/x-tar",".zip" => "application/zip",".mp3" => "audio/mpeg",".m3u" => "audio/x-mpegurl",".wma" => "audio/x-ms-wma",".wax" => "audio/x-ms-wax",".ogg" => "application/ogg",".wav" => "audio/x-wav",".gif" => "image/gif",".jar" => "application/x-java-archive",".jpg" => "image/jpeg",".jpeg" => "image/jpeg",".png" => "image/png",".xbm" => "image/x-xbitmap",".xpm" => "image/x-xpixmap",".xwd" => "image/x-xwindowdump",".css" => "text/css",".html" => "text/html",".htm" => "text/html",".js" => "text/javascript",".asc" => "text/plain",".c" => "text/plain",".cpp" => "text/plain",".log" => "text/plain",".conf" => "text/plain",".text" => "text/plain",".txt" => "text/plain",".dtd" => "text/xml",".xml" => "text/xml",".mpeg" => "video/mpeg",".mpg" => "video/mpeg",".mov" => "video/quicktime",".qt" => "video/quicktime",".avi" => "video/x-msvideo",".asf"=> "video/x-ms-asf",".asx" => "video/x-ms-asf",".wmv" => "video/x-ms-wmv",".bz2" => "application/x-bzip",".tbz" => "application/x-bzip-compressed-tar",".tar.bz2" => "application/x-bzip-compressed-tar",# default mime type"" => "application/octet-stream",)accesslog.filename = "/var/log/lighttpd/access.log"url.access-deny = ( "~", ".inc" )$HTTP["url"] =~ "\.pdf$" {server.range-requests = "disable"}# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgistatic-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )######### Options that are good to be but not neccesary to be changed ######### bind to port (default: 80)#server.port = 81## bind to localhost (default: all interfaces)#server.bind = "127.0.0.1"//上面这两项可以自己绑定自己需要的ip和端口## error-handler for status 404#server.error-handler-404 = "/error-handler.html"#server.error-handler-404 = "/error-handler.php"//定义错误的页面## to help the rc.scripts#server.pid-file = "/var/run/lighttpd.pid"#### compress modulecompress.allowed-encodings = ("bzip2", "gzip", "deflate")compress.cache-dir = "/var/cache/lighttpd/compress/"compress.filetype = ("text/plain", "text/html")$HTTP["host"] == "" {compress.cache-dir = "/var/www/cache//"compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml") }上面的这些是支持压缩下面是cache的一些设置cache.bases = ("/cache1/cache", "/cache2/cache") //将缓存的内容存放在哪里cache.support-queries = "enable"cache.dynamic-mode = "enable"//带?的url,默认是不缓存的,当cache.support-queries = "enable"、cache.dynamic-mode = "disable"时,缓存模块会把"/uri?q1" 或者"/uri?q2"看成是相同的url而缓存起来。

相关文档
最新文档