web服务器

Web服务器及性能优化

你。 提交于 2019-12-17 14:07:48
一、WEB服务器 1.1 概述: 1.2 区别: 1.2.1 Apache 1.2.2 Tomcat 1.2.3 Jboss 二、浏览器端,关于浏览器端优化 2.1 压缩源码和图片 2.2 选择合适的图片格式 2.3 合并静态资源 2.4 开启服务器端的Gzip压缩 2.5 使用CDN 2.6 延长静态资源缓存时间 2.7 把CSS放在页面头部,把JavaScript放在页面底部 三、服务端优化 3.1 HTML静态化 3.2 图片服务器分离 3.3 数据库集群、库表散列 3.4 缓存 3.5 镜像 3.6 负载均衡 3.6.1 硬件四层交换 3.6.2 软件四层交换 一、WEB服务器 1.1 概述: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。 Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。 Apache是Web服务器而Tomcat是Java应用服务器。 1.2 区别: 1.2.1 Apache 是C语言实现的,专门用来提供HTTP服务。 特性:简单、速度快、性能稳定、可配置(代理) 1、主要用于解析静态文本,并发性能高,侧重于HTTP服务; 2、支持静态页(HTML)

web网站阿里云服务器项目部署

十年热恋 提交于 2019-12-16 10:51:14
项目部署 基于ubuntu 16.04系统,使用 Gunicorn + Nginx 进行布署 阿里云服务器控制台: https://www.aliyun.com https://ecs.console.aliyun.com/#/home 1、进入控制台,查看实例创建情况 2、给安全组配置规则,添加5000端口(一并加上5001端口) 3、利用命令行进行远程服务器登录 ssh 用户名@ip地址 相关环境安装 以下操作都在远程服务器上进行操作 (ubuntu 16.04) 1)先更新 apt 相关源 sudo apt-get update 2)mysql安装 apt-get install mysql-server apt-get install libmysqlclient-dev 3)redis安装 sudo apt-get install redis-server 4)安装虚拟环境 pip install virtualenv pip install virtualenvwrapper 使得安装的virtualenvwrapper生效,编辑~/.bashrc文件,内容如下: export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/workspace source /usr/local/bin

1分钟带你理解Java Web开发必掌握的:Token ,Cookie,Session

非 Y 不嫁゛ 提交于 2019-12-16 00:36:33
在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。 Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用Cookie实际上只能存储一小段的文本信息。 例如:登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是Cookie。 Session Session是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息、固定变量等),这个数据可以保存在集群、数据库、文件中,用于跟踪用户的状态。 客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。 用户第一次登录后,浏览器会将用户信息发送给服务器,服务器会为该用户创建一个SessionId,并在响应内容(Cookie)中将该SessionId一并返回给浏览器

1分钟带你理解Java Web开发必掌握的的:Token ,Cookie,Session

时光总嘲笑我的痴心妄想 提交于 2019-12-16 00:22:22
在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。 Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用Cookie实际上只能存储一小段的文本信息。 例如:登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是Cookie。 Session Session是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息、固定变量等),这个数据可以保存在集群、数据库、文件中,用于跟踪用户的状态。 客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。 用户第一次登录后,浏览器会将用户信息发送给服务器,服务器会为该用户创建一个SessionId,并在响应内容(Cookie)中将该SessionId一并返回给浏览器

Haproxy搭建Web群集概述

那年仲夏 提交于 2019-12-13 10:18:55
博文目录 一、Haproxy概述 1、HTTP请求 2、负载均衡常用调度算法 3、常见的Web群集调度器 二、Haproxy配置项介绍 1、global配置项通常有下面配置参数: 2、defaults配置项配置默认参数,一般会被应用组件继承,如果在应用组件中没有特别的声明,将安装默认配置参数: 3、listen配置项一般配置应用模块参数: 三、Haproxy的参数优化 一、Haproxy概述 Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。Haproxy官方网站是 http://www.haproxy.org/ 。 1、HTTP请求 通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求。HTTP请求的方式分为GET方式和POST方式。 当使用浏览器访问某一个URL,会根据请求URL返回状态码,通常正常的状态码为2 X X、3 X X(如200、301),如果出现异常会返回4 X X、5 X X(如400、500)。例如:访问http://www.test.com/a.php?ld=123 ,就是一个GET请求,如果访问正常,会从服务器的日志中获取200状态码

负载均衡与缓存

倖福魔咒の 提交于 2019-12-13 00:47:42
 反向代理 ¶ 反向代理服务器配置nginx.conf #配置域名为test.web1.test的虚拟主机 server{ listen 80; server_name test.web1.test; #域名test.web1.test的请求全部转发到Web服务器192.168.1.101 location / { proxy_pass http://192.168.1.101 ; } } #配置域名为test.web2.test的虚拟主机 server{ listen 80; server_name test.web2.test; #域名test.we2.test的请求全部转发到Web服务器192.168.1.102 location / { proxy_pass http://192.168.1.102 ; } } 实验客户端配置,hosts文件,...103为nginx反向代理服务器地址 192.168.1.103 test.web1.test 192.168.1.103 test.web2.test 反向代理其他指令 proxy_set_header 在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息 proxy_connect_timeout 配置与后端服务器尝试建立连接的超时时间 proxy_read_ timeout 配置向后端服务器组发出read请求后

HTTP头信息总结

匿名 (未验证) 提交于 2019-12-12 14:52:17
本文为多篇“HTTP请求头相关文章”及《HTTP权威指南》一书的阅读后个人汇总整理版,以便于理解。   通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET、POST、PUT、DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET、POST、PUT、 DELETE就对应着对这个资源的查、改、增、删4个操作,我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 HTTP头信息解读   HTTP的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。   通用头部是客户端和服务器都可以使用的头部,可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如Date头部。   请求头部是请求报文特有的,它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据,如Accept头部。   响应头部便于客户端提供信息,比如

web服务器--iis

二次信任 提交于 2019-12-11 23:15:00
一、什么是iis iis是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事 二、iis功能作用 1、IIS是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW) 其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT

Java面试题全集(下)

久未见 提交于 2019-12-11 14:55:07
这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程序,一个基于Java的Web应用通常包含一个或多个Servlet类。Servlet不能够自行创建并执行,它是在Servlet容器中运行的,容器将用户的请求传递给Servlet程序,并将Servlet的响应回传给用户。通常一个Servlet会关联一个或多个JSP页面。以前CGI经常因为性能开销上的问题被诟病,然而Fast CGI早就已经解决了CGI效率上的问题,所以面试的时候大可不必信口开河的诟病CGI,事实上有很多你熟悉的网站都使用了CGI技术。 97、Servlet接口中有哪些方法? 答:Servlet接口定义了5个方法,其中前三个方法与Servlet生命周期相关: - void init(ServletConfig config) throws ServletException -

JWT ( JSON Web Token ) 入门教程

风流意气都作罢 提交于 2019-12-11 10:30:01
JSON Web Token 入门教程 作者: 阮一峰 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。 5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。 这种模式的问题在于,扩展性(scaling)不好。单机当然没有问题,如果是服务器集群,或者是跨域的服务导向架构,就要求 session 数据共享,每台服务器都能够读取 session。 举例来说,A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现? 一种解决方案是 session 数据持久化,写入数据库或别的持久层。各种服务收到请求后,都向持久层请求数据。这种方案的优点是架构清晰,缺点是工程量比较大。另外,持久层万一挂了,就会单点失败。 另一种方案是服务器索性不保存 session 数据了,所有数据都保存在客户端