发表于: 2018-04-08 22:58:18

1 670


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

1.nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?

代理服务器:

    一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。应用比如:GoAgent,FQ神器.

    一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源。 Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器又是Web客户端。

    代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。

正向代理 

    是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

反向代理服务器:

    在服务器端接受客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。Nginx就是其中的一种反向代理服务器软件。

    Nginx:Nginx ("engine x") ,Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。也是一个IMAP/POP3/SMTP代理服务器;也就是说,Nginx本身就可以托管网站,进行HTTP服务处理,也可以作为反向代理服务器使用。

    客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

    反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。


Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

优点:

(1)更快

    这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。

(2)高扩展性,跨平台

    Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。因此,当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。而且在HTTP模块中,还设计了HTTP过滤器模块:一个正常的HTTP模块在处理完请求后,会有一串HTTP过滤器模块对请求的结果进行再处理。这样,当我们开发一个新的HTTP模块时,不但可以使用诸如HTTP核心模块、events模块、log模块等不同层次或者不同类型的模块,还可以原封不动地复用大量已有的HTTP过滤器模块。这种低耦合度的优秀设计,造就了Nginx庞大的第三方模块,当然,公开的第三方模块也如官方发布的模块一样容易使用。

    Nginx的模块都是嵌入到二进制文件中执行的,无论官方发布的模块还是第三方模块都是如此。这使得第三方模块一样具备极其优秀的性能,充分利用Nginx的高并发特性,因此,许多高流量的网站都倾向于开发符合自己业务特性的定制模块。

(3)高可靠性:用于反向代理,宕机的概率微乎其微

    高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx。Nginx的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。

(4)低内存消耗

    一般情况下,10 000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。

(5)单机支持10万以上的并发连接

    这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,无疑会得到大家的青睐。理论上,Nginx支持的并发连接上限取决于内存,10万远未封顶。当然,能够及时地处理更多的并发请求,是与业务特点紧密相关的。

(6)热部署

     master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。当然,它也支持不停止服务就更新配置项、更换日志文件等功能。

(7)最自由的BSD许可协议

    这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布。这吸引了无数开发者继续为Nginx贡献自己的智慧。

    以上7个特点当然不是Nginx的全部,拥有无数个官方功能模块、第三方功能模块使得Nginx能够满足绝大部分应用场景,这些功能模块间可以叠加以实现更加强大、复杂的功能,有些模块还支持Nginx与Perl、Lua等脚本语言集成工作,大大提高了开发效率。这些特点促使用户在寻找一个Web服务器时更多考虑Nginx。

    选择Nginx的核心理由还是它能在支持高并发请求的同时保持高效的服务。



2.什么是ssh?如何在linux服务器上从网站下载文件?

一、基本知识

Secure Shell缩写是SSH, 由IETF的网络工作小组(Network Working Group)所制定,SSH是一项创建在应用层和传输层基础上的安全协议,为计算机的shell提供安全的传输和使用环境

传统的网络服务程序,如rsh FTP POP Telnet本质上都是不安全的,因为它们在网络 上是用明文传送数据,用户账号,和用户口令,很容易受到中间人攻击方式的攻击

存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后在冒充用户把数据传给真正的服务器

而SSH是目前比较可靠,专为远程登录回话和其他网络服务提供安全性的协议,利用SSH协议可以有效的防止远程管理过程中的信息泄露问题

通过SSH可以对所有的输出数据进行加密,也能够防止DNS欺骗和IP欺骗

SSH的另一个优点是传输的数据可以是经过压缩的,可以加快传输的速度,

SSH还有很多功能, 可以代替Telnet, 可以作为FTP, POP,甚至为PPP提供一个安全的通道

二、历史

最初的SSH协议是由芬兰的研究员atu Ylönen于1995年设计开发的, 但是因为受版权和加密算法的限制,现在很多人转而使用openSSH, 它是SSH的替代软件包,而且是开放源代码且自由的

三、基本架构

SSH协议框架最主要的三个协议:

传输层协议(the transport layer protocol):传输层协议提供服务器认证,数据机密性, 信息完整性等的支持

用户认证协议(the user authentication protocol): 用户认证协议为服务器提供客户端的身份鉴别

连接协议(the connection protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用

同时还有为许多高层的网路安全应用协议提供扩展的支持

各种高层应用协议可以相对地独立于SSH基本体系之外,并且依靠这个基本框架,通过连接协议使用SSH的安全认证

四、SSH的安全验证

在客户端看来,SSH提供两种级别的安全验证

第一种级别-基于密码的安全验证,知道账号和密码,可以登录到远程主机,并且所有的传输数据都会被加密,但是,可能有别的服务器在冒充真正的服务器,无法避免被中间人攻击

第二种级别-基于密钥的安全认证,需要依靠密钥,必须为自己创建一对密钥,把公有密钥放在需要访问的服务器上

客户端软件会向服务器发出请求,请求用你的密钥进行安全验证,服务器收到请求之后,先在你的该服务器的用户根目录下寻找公有密钥,然后把它和发送过来的公有密钥进行比较,如果两个密钥一致,服务器使用公有密钥加密质询challenge,并且把它发送给客户端软件,从而避免被中间人攻击

在服务器端,SSH提供安全验证,在第一种方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时候则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确保数据的保密性

第二种方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥就可以了,在这种模式下,客户端必须访问认证中心然后才能访问服务器主机

五、SSH协议的可扩展能力

SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法,客户自定义密钥规则,高层扩展功能性应用协议,这些扩展大多遵循IANA的有关规定,特别在重要的部分,像是命名规则和消息编码方面




3.如何写shell脚本?尝试自己编写一个简单脚本。

脚本语言也是一种类似perl的语言,不过我们可以仅仅把一些需要重复使用的命令加入其中让他作为一个类似批量处理文件的东西。

比如我写的tomcat实例运行和停止


4.tomcat、jetty、resin各容器有什么区别?如何优化这些容器配置?

一、什么是Tomcat

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

二、什么是Jetty

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

三、什么是Resin

Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。

Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。

一、tomcat和jetty的区别

1.相同点:

Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。

2.不同点:

(1)架构方面

Jetty的架构比Tomcat的更为简单

Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单。

Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展。

(2)性能方面

Jetty和Tomcat性能方面差异不大

Jetty可以同时处理大量连接而且可以长时间保持连接,适合于web聊天应用等等。

Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能。

Jetty默认采用NIO在处理I/O请求上更占优势,在处理静态资源时,性能较高

Tomcat适合处理少数非常繁忙的链接,也就是说链接生命周期短的话,Tomcat的总体性能更高。

Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。

(3)其它方面

Jetty的应用更加快速,修改简单,对新的Servlet规范的支持较好。

Tomcat目前应用比较广泛,对JavaEE和Servlet的支持更加全面,很多特性会直接集成进来。

所以,相对于tomcat来说,

Jetty更轻量级。由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。

Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。

然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。

二、tomcat和resin的区别

1.相同点

都是web服务器,并且支持集群部署。

2.不同点

(1)速度方面

resin的速度要比tomcat快

(2)机制方面

resin的启动与关闭机制以及报错机制都比tomcat好,tomcat则相对臃肿一些。

(3)开发环境热部署支持方面

tomcat较好,可根据需要配置。修改Jsp或java文件时,可配置是否重启服务。

resin较差,更新class及jsp文件,系统都会自动重新部署,并重启,配置了Session会话时开发比较麻烦。

(4)生产环境下热部署支持

tomcat一般。更新配置文件时,必须手动重启。更新其他文件时,大部分不用重启。但一次性更新太多文件时,经常会造成Tomcat重启失败。

resin较好。更新配置文件时,Resin会自动重启。



找姚磊大佬要到了css任务的代码,在做整合,

明天计划的事情:(一定要写非常细致的内容)

整合css,学习tiles 

遇到的问题:(遇到什么困难,怎么解决的)

resin的配置有时候无效 

收获:(通过今天的学习,学到了什么知识)

任务三的回顾


返回列表 返回列表
评论

    分享到