pythontomcat日志
1. tomcat部署时war包解压慢
旭勇 >《国内情况》
阅29转02021.05.11关注
Fiddler在使用的过程中经常会碰到一些问题。这章补充一些Fiddler的用法。
2.1Fiddler必须要做的3个设置
Fiddler需要进行3个设置,这样做使用Fiddler的过程才能顺畅。
2.1.1第1个设置:在Fiddler中安装证书
大部分网站都是使用HTTPS协议,所以必须安装证书,这样才能捕获HTTPS,如图2-1所示。
如果证书没有安装成功,那么Fiddler只能镇码扮抓到HTTP请求,抓不到HTTPS请求,如图2-2所示。所以一定要想办法把证书安装好。
图2-1Fiddler安装证书
图2-2没有抓到HTTPS
2.1.2第2个设置:自动解压HTTP响应
在Fiddler工具栏中选中“Decode”按钮,如图2-3所示。这样就会自动解压HTTP响应,否则我们看到的HTTP响应是乱码。
图2-3Fiddler选中Decode按钮
2.1.3第3个设置:隐藏“Tunner to”请求
可以在Fiddler中隐藏“CONNECT Tunnels”请求,如图2-4所示。隐藏的方法是选择菜单栏中的Rules→Hide CONNECTs。这样Fiddler就不会捕获大量无用的握手验证请求,如图2-5所示。这些“Tunnel to”的请求对我们没什么用处。因为我们平常根本不关心HTTPS是如何建立连接的。我们抓包是为了看HTTP请求和响应的数据内容,抓HTTPS也是看数据内容,而不关心HTTPS的通信是怎么建立的。
图2-4在Fiddler中选中Hide CONNECTs
图2-5Fiddler中的握手验证请求
2.2不允许抓包
软件开发商并不希望自己的软件被人抓包,抓包意味着自己的接口全部被人看得一清二楚,存在很多安全隐患。有很多App采取各种措施来防止被抓包。
2.2.1某些App抓不到包
某些App为了不被抓包,直接会在代码里设置不允许使用代理,这样Fiddler就抓不到了。
有些App能抓包,说明Fiddler的设置是正确的。某些App不能抓包,原因有很多,如下。
可能是Fiddler证书原因,解决方法是需要用证书插件来重新制作一个证书,然后重新配置。
这个App的开发者进行了特殊设置,不让抓包。
2.2.2HTTP请求和响应全部加密
图2-6是一个查违章的App的抓包内容,可以看到这个App可以被抓包,但是其HTTP请求和HTTP响应全部被加密了,安全性很高。
图2-6查违章App的接口全部被加密
2.2.3不让抓包
银行的App对安全性要求很高,所以一般不允许抓包。某款银行App在用Fiddler抓包的时候,App会提示网络错误,不让抓包,如图2-7所示。
图2-7某银行App不让抓包
2.3Fiddler抓不到包
在使用Fiddler的过程中,有时候会发现模兆Fiddler抓不到包。下面介绍如何解决抓包失败的问题。
2.3.1Fiddler的抓包开关
Fiddler有一个抓包的开关。打开状态栏的时候,状态栏的最左边有个“Capturing”图标,如图2-8所示。如果没有这个图标,当然抓不到包了。初学者很容易忘记这个开关。
图2-8Fiddler的抓包开关
2.3.2浏览器抓不到包
Fiddler能抓包是因为它是一个代理服务器。需要抓包的程序必须把代理指向Fiddler才行。如果浏览器抓不到包,可能是因为浏览器的代理设置没有指向Fiddler。我们可以先重启Fiddler,然后查看浏览器的代理服务器设置,或者换不同的浏览器试试。御灶
我们先来看一下Fiddler的抓包原理图,如图2-9所示。
图2-9浏览器的抓包原理
如果是某一个浏览器抓不到包,解决方案是换其他的浏览器。比如IE和Chrome都能抓到,只是Firefox抓不到包,说明Fiddler本身没有问题,可能是Firefox的代理设置没有指向Fiddler。
如果是所有的浏览器都抓不到包,这说明整个Fiddler都不工作。那么要先重启Fiddler,再检查下系统的代理设置,如图2-10所示。
图2-10系统代理设置
设置系统代理的打开方式为:控制面板→Internet选项→连接→局域网设置→代理服务器。
2.3.3能抓HTTP不能抓HTTPS
如果发现Fiddler可以抓到HTTP的请求,但是抓不到HTTPS的请求,这说明没有安装Fiddler的证书或者安装Fiddler证书失败。Fiddler可能会提示你安装证书。解决办法是重新安装证书,再重启Fiddler,如图2-11所示。
图2-11重新安装证书
重新安装证书的操作是Options→Actions→Trust Root Certificate。
2.3.4抓不到手机中的包
很多人会碰到这种情况:Fiddler能抓本地计算机浏览器的包,但是抓不到手机的包。本地计算机和手机位于同一个网络,各种配置也正常,但是手机的包就是抓不到。
出现这样的问题的原因是Fiddler所在的计算机和手机之间的网络不通。即使Fiddler所在的计算机和手机连的是同一个Wi-Fi,也可能网络不通。在同一个Wi-Fi下,网络不一定是通的。操作系统上的防火墙或者其他软件的设置都会影响网络的通信。我们需要通过下面的步骤来检测网络是否是通的。
第1步:测试Fiddler能否捕获本地计算机的浏览器的包,如果本地浏览器都不能抓包,那就说明Fiddler的配置有问题。
第2步:如果Fiddler所在的计算机的IP地址是192.168.0.100,那么Fiddler证书网站的网址是http://192.168.0.100:8888。用计算机的浏览器访问Fiddler证书网站,如图2-12所示。
图2-12Fiddler Echo Service网页
第3步:在手机没有设置代理的情况下,在手机上用浏览器打开Fiddler的证书网站。
如果网页打不开,说明网络不通,原因可能如下。
手机和计算机不在同一个网络。
Fiddler的允许远程连接的设置没有打开。
Windows的防火墙关闭(防火墙打开,可能会禁止8888端口对外开放)。
只有Fiddler证书网站能打开,才能说明手机和计算机的网络是通的。再去修改手机上的代理设置,Fiddler才能对App进行抓包。
2.3.5经过上面的设置,还是抓不到包
可以考虑换台计算机、换个手机试试,或者换别的抓包工具试试。
2.3.6mac OS系统上抓包
Fiddler是用C#开发的,目前对mac OS的支持不太友好。现在很多人都用Mac笔记本办公,在mac OS系统上抓包可以考虑用另外两个工具:浏览器开发者工具和Charles。
2.3.7Fiddler证书安装不成功
有时候会碰到Fiddler安装证书不成功的情况,如图2-13所示。
图2-13证书安装不成功
这种情况一般在Windows7系统中出现,可以试图用下面介绍的两种方法来解决。
方法1:从别的机器中复制一个Fiddler根证书“FiddlerRoot.cer”放到Fiddler的安装目录下面,然后再重新配置证书,如图2-14所示。
图2-14Fiddler证书
方法2:使用Fiddler证书制作工具来重新制作证书,详细步骤如下。
第1步:在Fiddler中删除证书。打开Fiddler,依次打开Tools→Options,取消选中Decrypt HTTP traffic,并且在Actions中单击“Remove Interception Certificates”,如图2-15所示。
图2-15Fiddler删除证书
第2步:卸载证书。找到Fiddler的安装目录,其中有个unCert.exe文件。如果没有unCert.exe就不需要卸载,如图2-16所示。
第3步:使用Fiddler证书制作工具来重新制作证书。下载Certificate Make插件,运行下载的文件之后会生成新的证书。
第4步:在Fiddler中重新配置证书。
图2-16Fiddler卸载证书
2.3.8iOS系统10.3以上,手动信任证书
若iOS系统版本是10.3以上,那么证书可能没有被信任,需要手动设置信任证书。依次打开设置→通用→关于本机→证书信任设置,将Fiddler证书启用即可,如图2-17所示。
图2-17iOS中启用Fiddler证书
2.4Fiddler包太多找不到自己想要的
Fiddler启动后,Web Session列表就会抓到很多HTTP请求,初学者往往会比较迷茫,因为找不到自己要抓的包。下面介绍几个方法来找到自己要抓的包。
2.4.1停止抓包
最推荐使用这个方法。在抓包之前,先把Web Session里面抓到的数据包全部清空,然后再操作网页。在抓到想要的包后,就暂停抓包,这个方法简单、实用。熟练使用这个方法后,就不需要使用其他过滤的方法了。抓包开关如图2-18所示。
图2-18抓包开关
2.4.2只抓手机,不抓本地的包
在专门抓App的包的时候,Fiddler里面混杂了本地计算机和手机App的包,如果只想抓手机App的包,这时候可以选择“…from remote clients only”,如图2-19所示。
图2-19设置只抓远程的包
2.4.3过滤会话
Fiddler有非常强大的过滤会话的功能,假如不想看到localhost的数据包,就可以把它隐藏。过滤的设置如图2-20所示。注意,在设置时两个Host之间要用分号隔开。
图2-20用Filters选项卡隐藏localhost
注意:使用了Filters选项卡后,记得取消Filters选项卡。可能下次抓包的时候,忘记设置Filters选项卡而抓不到包。很多人犯过这个错误。
2.4.4只抓特定的进程
在状态栏中选择Web Browsers或者Non-Browser来选择进程,如图2-21所示。此外,工具栏中还有个按钮:Any Process,单击这个按钮把十字图标拖曳到想要抓包的程序上面,就只会抓特定进程的包,如图2-22所示。
图2-21状态栏上按进程过滤
图2-22只抓特定的进程
2.4.5观察URL和HOST
观察图2-23中的URL,可知这是登录相关的数据包。URL的命名都会是有意义的。比如登录的接口会包含login,注销的URL中会包含logout。
图2-23观察URL
2.4.6查看进程发包
进程是计算机中程序的一次运行活动。Fiddler的Process列对应本地Windows进程。通过这一列我们可以知道是哪个进程在发包,如图2-24所示。
图2-24在Fiddler中查看进程
2.5HTTPS是否安全
Fiddler能分析HTTPS流量是不是意味着HTTPS协议不安全?
HTTPS是安全的,Fiddler抓HTTPS的时候安装了一个Fiddler的证书,所以Fiddler可以解密HTTPS的内容。HTTPS请求从计算机上发送到网络后,HTTPS的内容全部是加密的。
2.6计算机连接手机热点抓包
在没有Wi-Fi的情况下,我们用手机开热点,计算机连接手机的热点来上网,这个时候计算机上的Fiddler能否抓到手机上的包呢?答案是不能。因为手机开热点后,采用的是GPRS手机流量上网,这个时候手机不能设置代理服务器的,如图2-25所示。
图2-25WLAN热点
如果有两个手机,一台计算机,那么就可以抓包了。一个手机当成热点,另外一台手机和计算机都使用这个热点上网,手机的代理就可以指向计算机了。
客户端如何抓包
如果程序是用.NET开发的,那么Fiddler可以抓到包。因为.NET程序默认会使用系统代理。如果程序是用别的语言开发的,只要这个程序支持用户自定义代理,那么Fiddler也可以抓到包,比如Fiddler可以抓QQ。
如果客户端程序不支持代理,那么Fiddler就抓不到包了。
2.7Fiddler测试App升级
Fiddler常用于App的升级测试,我们可以利用Fiddler伪造响应来测试App升级。
2.7.1App升级原理
App是否升级的检查是在启动App访问服务器时进行的,把本地计算机上App的最新版本号与服务器端的最新版本号作对比,如果不一致就提示升级。
App升级的时候,App会发送一个HTTP请求,来问服务器有没有最新版。如图2-26所示,如果没有最新版,服务器返回的HTTP响应中会说没有更新。
图2-26App没有新版本
如果有最新版,服务器返回的响应会告知有新版本,并且App端会有弹窗提示,如图2-27和图2-28所示。
图2-27App有新版本
图2-28App更新提示
2.7.2App升级的测试
在实际测试中,我们一般不会去修改服务器,因为修改服务器会遇到下述问题。
修改服务器的代码,需要有很好的代码能力,99%的人做不到。
修改服务器的代码,还需要重新部署,耗时耗力。
不灵活,升级的情况有好几种,每次修改都要重新部署。
用Fiddler来模拟升级比较简单,如图2-29所示。
图2-29Fiddler模拟
我们用Fiddler伪造一个HTTP响应就可以了。可以用下断点的方式修改HTTP响应,或者用Fiddler中的AutoResponder。接下来以坚果云为例介绍一下升级。
2.7.3坚果云的升级
坚果云每次启动的时候,都会调用一个latestVersion的接口来查询服务器,看客户端有没有更新的版本,如图2-30所示。
对比HTTP响应中的版本和本地版本,如果服务器返回的版本更高,那么客户端就会弹出对话框,提醒用户升级App。
图2-30坚果云的升级
2.8短链接
短链接就是把普通网址转换成比较短的网址(如https://dwz.cn/8oVtHHyH)。在微博或者其他限制字数的应用里,短链接有很多好处:网址短、字符少、美观、便于发布和传播。
我们平常工作中写邮件使用短链接也会让邮件更加简洁和美观。
2.8.1短链接原理解析
当我们在浏览器里输入https://dwz.cn/8oVtHHyH时:
浏览器会发送一个HTTP GET请求给dwz.cn;
dwz.cn服务器会通过短码8oVtHHyH获取对应的长网址;
服务器返回HTTP 301或者302的响应,响应中包含了长网址;
浏览器会跳转到长网址。
2.8.2使用短链接
短链接的服务提供商有很多,比如:网络短网址http://dwz.cn,如图2-31所示。
图2-31使用网络短网址
2.8.3Fiddler抓包短链接
打开Fiddler,再打开浏览器,输入网址https://dwz.cn/8oVtHHyH。用Fiddler抓包短链接如图2-32所示。
图2-32Fiddler抓包短链接
从图2-32中可以看到短链接的原理很简单,利用HTTP协议的跳转,用301或者302都可以。
2.9本章小结
本章介绍了Fiddler的常用使用技巧,包括抓包设置、抓不到包的解决方法等。读者可以对照本章排查Fiddler使用过程中遇到的问题。此外,读者还可以了解用Fiddler测试App升级和短链接的概念。
本文摘自:《HTTP抓包之接口自动化测试》
本书的内容都是我多年从事接口测试的经验总结,非常贴近我们的实际工作,能帮助大家解决实际工作中的难题。
本书的内容比较简单,实例丰富,读者阅读起来会感觉比较轻松、容易上手,读完本书不需要花费太多时间。通过本书的学习,如果读者能够自行开发出一个订票工具,或者实现一个电商网站的自动下订单操作,那么恭喜你,已经掌握了本书的所有知识。
本书的主要内容有HTTP的基础知识;如何使用Fiddler来抓HTTP包;如何分析HTTP包;如何通过JMeter和Postman等发送HTTP包,从而实现软件自动化测试和接口的自动化测试;如何使用抓包工具来实现安全测试和性能测试等;几个日常生活中应用比较广泛的综合实例。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。
展开剩余内容
打开APP阅读全文并永久保存
更多类似文章
猜你喜欢
类似文章
Fiddler和app抓包
fiddler对浏览器、app抓包及证书安装
你想要的Fiddler抓包实操小技巧
python爬虫教程:教你通过 Fiddler 进行手机抓包
利用Fiddler 可以抓取HTTPS
抓包|获取移动app里的数据
更多类似文章 >>
生活服务
首页万象文化人生生活健康
教育职场理财娱乐艺术上网
留言交流回顶部
联系我们
触屏版| 下载APP
京ICP证090625号 京ICP备05038915号
京网文[2019]6000-697号 京公网安备 11010502030377号
关注公众号
保存
生成长图
分享
2. #!/usr/bin/env python与#!/usr/bin/python的区别
在unix类的操作系统才有意义。
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
(2)pythontomcat日志扩展阅读:
Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python常用的代码:,
1,生成随机数
rnd=random.randint(1,500):生成1-500之间的随机数
2,读文件
f=open("c:\1.txt","r")
lines=f.readlines()
forlineinlines
printline
3,写文件
f=open("c:\1.txt","r+"):可读可写模式
f.write("123"):写入字符串
4正则表达式,读取tomcat的日志并打印日期
importre
regx="dddd-dd-d+"
f=open("c:stdout.log","r")
i=0
forstrinf.readlines():
ifre.search(regx,str):
Response.write(str+"<br>")
ifi>10:break
i=i+1
f.close();
5,连接数据库
importpgdb
conn=pgdb.connect
(host='localhost',databse='qingfeng',user='qingfeng',password='123')
cur=conn.cursor()
cur.execute("select * from dream")
printcur.rowcount
3. 如何批量拷贝日志到本机
可以给一个思路,首先30台机器应该是互相联网的吧,他们之间可以相互通信,那先找一台机器作为存放所有数据的服务器,然后在里面分配一个目录用来存放你说的240条log
然后在30台机器上都设置一个cronjob,定时的将log拷贝到哪台机器的共享目录下
假设哪台server是192.168.1.100,共享目录是/local/log,
那每台机器需要做的操作就是(假设早上8点拿数据)
0 8 * * * scp /app/nginx_tomcat/tomcat/2014-07-07.log linux_username:[email protected]:/local/log/2014-07-07-100.log
(用来区分不同的主机的log)
然后在192.168.1.100上多写一个打包的job
30 8 * * * tar -zcvf /local/2014-07-07.tar.gz /local/log
其实可以写个简单的脚本,包括打包,清空目录,和发送邮件
4. IIS、Apache、Tomcat、Nginx、CDN,它们之间有何区别
一个学习的总结,或者说是汇总,有些链接给出的观点过时,已按照自己的理解经过修改编辑;
web服务器
Web服务器的基本功能就是提供Web信息浏览服务,响应客户端的浏览器请求。因为Web服务器主要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的。待考:支持除HTTP之外的协议的web服务器?
不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性和可扩展性,例如负载平衡,缓冲,集群。
IIS、Apache、Tomcat都可以属于Web服务器。
IIS 是微软开发的web服务器,需要收费,主要用来跑 asp.net asp php,只能在windows下运行。
Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是java应用服务器。Apache服务器 只处理 静态HTML,而tomcat服务器 静态HTML 动态 JSP Servlet 都能处理。
一般是把 Apache服务器 与 tomcat服务器 搭配在一起用:
1) Apache服务器 负责处理所有 静态的 页面/图片 等信息。
2) Tomcat 只处理动态的 部分。
Apache:是C语言实现的,专门用来提供HTTP服务。特性:简单、速度快、性能稳定、可配置(代理)
1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;
2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等;3、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通;
4、Apache是世界使用排名第一的Web服务器。
Tomcat:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。特性:免费的Java应用服务器
1、主要用于解析JSP/Servlet,侧重于Servlet引擎;
2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求;
3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。
Apache + Tomcat:两者整合后优点:如果请深圳市是静态网页则由Apache处理,并将结果返回;如果是动态请求,Apache会将解析工作转发给Tomcat处理,Tomcat处理后将结果通过Apache返回。这样可以达到分工合作,实现负载远衡,提高系统的性能。apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。独立于apache运行。换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
Nginx与Apache比较:
1)轻量级,同样起web 服务,比apache占用更少的内存及资源 ;
2)高并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 ;
3)高度模块化的设计,编写模块相对简单 ;
4)提供负载均衡;
5)apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程;
Web Server中文名称叫网页服务器或web服务器。WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务 IIS
IIS是微软公司的Web服务器。主要支持ASP语言环境,对于中小企业来说建立自己的网站,对外展示自己的页面是最平常不过的事情了。目前最流行的建立WWW服务工具就要属Apache与IIS了。 IIS只能在微软公司的windows操作系统下使用,离开了windows他将一事无成。无法移植到其他类型的操作系统中。
Tomcatjava里面一个web容器,就是一个http请求来了,它帮你接受,可能再对请求做些处理,然后拉起你controller的代码,把请求传进去,最后当controller处理结束后,再把请求简单处理一下返回给请求者。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
CDN中文叫内容分发网络,都是云服务商在运营,它可以让你的用户在访问资源的时候就近访问,提高静态资源的访问速度。
这些都是不同的东西,不过都是概念上的,功能上有一定的重叠,不过在使用中基本都是不同的东西。
一般生产上iis,nginx,apache都是当反向代理用,少数情况会当静态文件服务器用。tomcat,无论何时都是web容器。cdn一般只在生产上用,主要是提供静态文件服务。
至于他们的实现,理论上讲用什么语言否没问题,不管是java node还是啥的,不过有现成的,应该没人会造新的。
Apache是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页. 但asp,php,cgi,jsp等动态网页的就不行. 如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页, 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK 整合的好处是:如果客户端请求的是静态页面,则只需要Apache服务器响应请求如果客户端请求动态页面,则是Tomcat服务器响应请求因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。
Apache:普通服务器,本身只支持html即普通网页,它是html容器,功能像IIS一样
tomcat:解释java程序(jsp,serverlet),它是是jsp/servlet容器,用于发布JSP及JAVA的
apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),tomcat就是一个桶(装像JAVA这样的水),而这个桶也可以不放在卡车上。
诀窍是, 当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。
NginxNginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
nginx相对于apache的优点
轻量级,同样起web 服务,比apache占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单
提供负载均衡
社区活跃,各种高性能模块出品迅速
总结Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。
Tomcat:动态解析容器,处理动态请求,是编译JSPServlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。
Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。
反向代理的理解:
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,
并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
您的提问,有我回答,我是IT屠工!
IIS
IIS是互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。
IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
IIS的功能
IIS是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW)。
其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。
Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。
Apacheweb服务器软件主要功能:
1.支持最新的HTTP/1.1通信协议
2.拥有简单而强有力的基于文件的配置过程
3.支持通用网关接口
4.支持基于IP和基于域名的虚拟主机
5.支持多种方式的HTTP认证
6.集成Perl处理模块
7.集成代理服务器模块
8.支持实时监视服务器状态和定制服务器日志
9.支持服务器端包含指令(SSI)
10.支持安全Socket层(SSL)
11.提供用户会话过程的跟踪
12.支持FastCGI
13.通过第三方模块可以支持JavaServlets
Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
Nginx
Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP、POP3、SMTP 代理服务器。
Nginx 可以作为一个 HTTP 服务器进行网站的发布处理,另外 Nginx 可以作为反向代理进行负载均衡的实现。
CDN
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN网络中包含的功能实体包括内容缓存设备、内容交换机、内容路由器、CDN内容管理系统等组成。
CDN具有以下主要功能:
1.节省骨干网带宽,减少带宽需求量;
2.提供服务器端加速,解决由于用户访问量大造成的服务器过载问题;
3.服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无须占用主干的出口带宽,并提高用户访问因特网页面的相应时间的需求;
4.能克服网站分布不均的问题,并且能降低网站自身建设和维护成本;
5.降低“通信风暴”的影响,提高网络访问的稳定性。
以上是我的回答,希望可以帮助到您!
iis apache nginx属于一类,都是web服务,本身提供静态文件访问功能,同时又可以通过扩展接入其他语言的解析。tomcat是针对java类的web服务容器。可以这样理解iis apache nginx是阿里,tomcat是京东。而cdn只是一种服务的统称,用到的web服务器则可能不同,有用nginx实现cdn的,也有自研的。
这类再简单介绍一下,iis主要针对微软系的语言。当然也支持php等。但是主要用于微软系。
apache主要以扩展方式运行,比如php,如果想在apache里运行,你得给apache写个扩展,这样才可以跑php,也就是耦合度比较高。
nginx以性能闻名。运行web主要靠反向代理和协议。这样其他语言只需要按照协议通讯即可无需开发nginx扩展。耦合度低。
5. Python的BaseHTTPServer监听端口只能通过localhost打开,内网IP不能访问
下面是java的例子,但是原理一样的
【起因】
同事要参考我写的一个项目的效果,在本机发布以后发现通过局域网IP无法访问,但是localhost和127.0.0.1可以访问
【经过】
配置tomcat的server.xml, 更改connector配置, 端口不用改, 加上address="0.0.0.0", 使其绑定到IPv4, 如下
(借鉴的解决方案)
<1>使用cmd命令netstat -n, 查看tomcat地址绑定, 发现是绑定到127.0.0.1
<2>配置tomcat的server.xml, 更改connector配置, 端口不用改, 加上address="0.0.0.0", 使其绑定到IPv4
<Connector port="8080" maxHttpHeaderSize="8192" address="0.0.0.0"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<3>重启tomcat, 再次使用netstat -n, 查看tomcat地址绑定, 已变为IPv4.
【结果】
可以通过局域网IP访问了。
6. cp:cannot stat no such file or directory怎么解决
no such file or directory 意思是: 没用这样的文件和文件夹。
解决方法:
1.查一下 文件名 和 路径的 拼写 有无错误。
2.cp 是 的意思 (linux/unix 文件复制 命令)。