Web

Web

7款不错的网站数据分析工具

运维技术koyo 发表了文章 • 1 个评论 • 291 次浏览 • 2017-07-29 14:48 • 来自相关话题

拥有并运营一个很棒的网站不是一件简单的事情。除了需要决定网站的类型之外,你还需要运营网站,关注网站的各项数据并且决定使用何种手段增加流量。

你应该感到庆幸的是,这其实并没有那么复杂,但需要付出一些努力以及使用正确的工具。在这之后,你可以尝试使用各种不同的工具让工作流程更高效。

单靠一个工具是不可能完成所有事情的。所以要点在于要涉及各种不同的选择,比如分析工具、任务管理、流程自动化以及图形设计等。下面就列出了一些可以帮助站长提升品牌的最有价值的工具。
 

1、SE Ranking

SE Ranking 是一个基于云端的大而全的 SEO 服务。它帮站长减轻了不少负担,节约了生成报表的时间,同时在市场战略和发展计划的准备、分析以及调整等各个环节都很有帮助。

这个服务不仅仅是用来跟踪网站的排名,而且也可以用于各种复杂度的营销推广计划上。




SE Ranking 对这一代站长来说确实是一个非常有用也有很前景的 SEO 工具。尽管它在市场上还很新颖,但在实践中用起来还不错。

它里面有一系列很棒的功能,包括像关键词推荐、反向链接的监控,社交管理以及网站审计。我还没发现什么 SE Ranking的弱点,但我还是建议你尝试一下,也验证下所列出的各个功能的有效性。




 

2、Piktochart

Piktochart 是我最喜欢的在线信息图生成器,它可以让非专业设计师也能创建一些基本的设计图。如果没有时间或预算设计很好的信息图,那么就可以使用 Piktochart 把几个很赞的元素拼接起来生成想要快速进行病毒式传播的设计图。

Piktochart 是一个傻瓜式的工具,可创建不同的图表、地图和视频,而且它还有自动保存的功能。




基础版是免费的,但是只有一些有限的功能。你也可以使用解锁了所有功能的高级版。

如果你需要搜寻灵感和想法来创造出一些独特的东西,那么 Piktochart 就是你需要的工具。Piktochart 本身就充满了灵感,而且导航非常清晰易用。
 

3、Google Analytics

Google Analytics 是市场上最强大的分析服务之一。它可以让你分析流量,展示人口统计信息(年龄,性别等),另外也可以看到访客信息,包括新访客和回访访客。

不仅可以看到访客的地理位置,还可以发现他们在网站上做了什么。这样详细的人群统计信息也会帮助你预先计划网站未来的内容。




Google Analytics 是一个免费的网页版应用,只要有网络连接就可以随时随地使用。它的图表好看,而提供的结果也相当准确。另外它还可以在很多方面提供帮助,比如 A/B 测试和 Adwords 接入,这些都可以帮助提升用户体验。
 

4、Mention

Mention 是一个很不错的网络和社交媒体监控工具,其用户友好的界面非常简单易用。

该工具提供的免费套餐允许你每个月追踪最多500次品牌名字提及(@的次数)。如果你想追踪的提及次数超过500次,那么可以试试每月29美元起的高级套餐。




Mention 对于任何站长都绝对是节省时间的利器,因为你还可以再次转发这些推文,在 Facebook 页面上点赞或者分享积极的分享推文,以及通过 Email 发送推特文章。与其他工具相比,Mention 推送的通知非常地快,而且它还有一个很棒的功能就是可以在屏幕上预览结果。
 

5、Work Examiner

Work Examiner 可以帮助网站管理员管理很多项目。尽管有人会认为这侵犯了隐私,但是它作为一种监控员工的日常职责和收集员工工作时间的分配数据的方式还是相当有效的。通过这个工具,你可以限制员工访问某些可能会让他们分心的内容。




 

6、Ahrefs

Ahrefs 是从我开始 SEO 职业生涯以来就最喜欢的一个链接生成工具。该工具为站长分析链接信息提供了多个选项,可以让你知道一个网站的当前链接状态,并且可以帮助你理解网站内容和竞争对手。




在 Ahref 套装里,可以看到关键词分析,批量分析,站点探索,反向链接报表,域名比较以及竞争分析的工具。它高速的性能和图形化的展示甚至可以让SEO 新手都很容易地理解。




 

7、SEMrush

SEMrush 是一个为 SEO 专家和站长设计的多功能 SEO 工具,可用来研究客户的相关信息。该工具可让你全面了解客户,找到最佳关键词,排名超过竞争对手,检查他们的网站流量情况,找到所有的网站问题等等。

SEMrush 是一个一应俱全的 SEO 工具,提供了很多其他工具所没有的一系列有用的功能特性。




若想获得一份竞争对手网站全面又细致的分析数据,SEMrush 的高级账号会更好用些。 如果你是一个 SEO 初学者,你可以从免费试用账号开始,把 SEMrush 的所有有价值的功能全部体验一遍。




 

总结

网络上有很多为站长和网络营销人员提供的 SEO 工具。不管你是已经拥有了一堆网站,还是在创建一个网站的过程中,亦或是有了启动下一个大项目的计划,你都应该从上述7个工具里获得显著的好处。
 
分享英文原文:http://marketingland.com/top-7-must-tools-website-owners-165538 
 
  查看全部
WebSiteTools.png

拥有并运营一个很棒的网站不是一件简单的事情。除了需要决定网站的类型之外,你还需要运营网站,关注网站的各项数据并且决定使用何种手段增加流量。

你应该感到庆幸的是,这其实并没有那么复杂,但需要付出一些努力以及使用正确的工具。在这之后,你可以尝试使用各种不同的工具让工作流程更高效。

单靠一个工具是不可能完成所有事情的。所以要点在于要涉及各种不同的选择,比如分析工具、任务管理、流程自动化以及图形设计等。下面就列出了一些可以帮助站长提升品牌的最有价值的工具。
 


1、SE Ranking


SE Ranking 是一个基于云端的大而全的 SEO 服务。它帮站长减轻了不少负担,节约了生成报表的时间,同时在市场战略和发展计划的准备、分析以及调整等各个环节都很有帮助。

这个服务不仅仅是用来跟踪网站的排名,而且也可以用于各种复杂度的营销推广计划上。
Ranking.png

SE Ranking 对这一代站长来说确实是一个非常有用也有很前景的 SEO 工具。尽管它在市场上还很新颖,但在实践中用起来还不错。

它里面有一系列很棒的功能,包括像关键词推荐、反向链接的监控,社交管理以及网站审计。我还没发现什么 SE Ranking的弱点,但我还是建议你尝试一下,也验证下所列出的各个功能的有效性。
filter.png

 


2、Piktochart


Piktochart 是我最喜欢的在线信息图生成器,它可以让非专业设计师也能创建一些基本的设计图。如果没有时间或预算设计很好的信息图,那么就可以使用 Piktochart 把几个很赞的元素拼接起来生成想要快速进行病毒式传播的设计图。

Piktochart 是一个傻瓜式的工具,可创建不同的图表、地图和视频,而且它还有自动保存的功能。
Piktochart.png

基础版是免费的,但是只有一些有限的功能。你也可以使用解锁了所有功能的高级版。

如果你需要搜寻灵感和想法来创造出一些独特的东西,那么 Piktochart 就是你需要的工具。Piktochart 本身就充满了灵感,而且导航非常清晰易用。
 


3、Google Analytics


Google Analytics 是市场上最强大的分析服务之一。它可以让你分析流量,展示人口统计信息(年龄,性别等),另外也可以看到访客信息,包括新访客和回访访客。

不仅可以看到访客的地理位置,还可以发现他们在网站上做了什么。这样详细的人群统计信息也会帮助你预先计划网站未来的内容。
googlea.png

Google Analytics 是一个免费的网页版应用,只要有网络连接就可以随时随地使用。它的图表好看,而提供的结果也相当准确。另外它还可以在很多方面提供帮助,比如 A/B 测试和 Adwords 接入,这些都可以帮助提升用户体验。
 


4、Mention


Mention 是一个很不错的网络和社交媒体监控工具,其用户友好的界面非常简单易用。

该工具提供的免费套餐允许你每个月追踪最多500次品牌名字提及(@的次数)。如果你想追踪的提及次数超过500次,那么可以试试每月29美元起的高级套餐。
mention.png

Mention 对于任何站长都绝对是节省时间的利器,因为你还可以再次转发这些推文,在 Facebook 页面上点赞或者分享积极的分享推文,以及通过 Email 发送推特文章。与其他工具相比,Mention 推送的通知非常地快,而且它还有一个很棒的功能就是可以在屏幕上预览结果。
 


5、Work Examiner


Work Examiner 可以帮助网站管理员管理很多项目。尽管有人会认为这侵犯了隐私,但是它作为一种监控员工的日常职责和收集员工工作时间的分配数据的方式还是相当有效的。通过这个工具,你可以限制员工访问某些可能会让他们分心的内容。
workex.png

 


6、Ahrefs


Ahrefs 是从我开始 SEO 职业生涯以来就最喜欢的一个链接生成工具。该工具为站长分析链接信息提供了多个选项,可以让你知道一个网站的当前链接状态,并且可以帮助你理解网站内容和竞争对手。
ahrefs.png

在 Ahref 套装里,可以看到关键词分析,批量分析,站点探索,反向链接报表,域名比较以及竞争分析的工具。它高速的性能和图形化的展示甚至可以让SEO 新手都很容易地理解。
SiteEx.png

 


7、SEMrush


SEMrush 是一个为 SEO 专家和站长设计的多功能 SEO 工具,可用来研究客户的相关信息。该工具可让你全面了解客户,找到最佳关键词,排名超过竞争对手,检查他们的网站流量情况,找到所有的网站问题等等。

SEMrush 是一个一应俱全的 SEO 工具,提供了很多其他工具所没有的一系列有用的功能特性。
semrush.png

若想获得一份竞争对手网站全面又细致的分析数据,SEMrush 的高级账号会更好用些。 如果你是一个 SEO 初学者,你可以从免费试用账号开始,把 SEMrush 的所有有价值的功能全部体验一遍。
trial.png

 


总结


网络上有很多为站长和网络营销人员提供的 SEO 工具。不管你是已经拥有了一堆网站,还是在创建一个网站的过程中,亦或是有了启动下一个大项目的计划,你都应该从上述7个工具里获得显著的好处。
 
分享英文原文:http://marketingland.com/top-7-must-tools-website-owners-165538 
 
 

代理到底有几种功能模式?

运维技术Ansible 发表了文章 • 0 个评论 • 539 次浏览 • 2017-03-21 22:39 • 来自相关话题

通常我们都知道Nginx性能很高,尤其是作为一个代理服务器,因为它用的是epoll模型,就比如Python Django Web的性能不行,我们可能就会在前端加一个nginx代理,从而提高总体的处理性能问题,但是我们常说的代理,值的是什么类型的代理呢,你知道吗?
 
代理服务技术是在互联网早期就出现被使用的。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围和nginx的配置案例,便于大家更深入理解代理服务技术。
 

一、正向代理(Forward Proxy)

一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。
 
正向代理(forward)是一个位于客户端 【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理,如下图所示:




从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器【Z】替代访问方【用户A】去访问目标服务器【服务器B】。
 
这就是正向代理的意义所在。而为什么要用代理服务器【Z】去代替访问方【用户A】去访问服务器【B】呢?为什么不直接访问呢,这就要从场景和代理服务器使用的意义说起。
 
使用正向代理的意义和场景有如下几种:
 
1、用户访问本来无法访问的服务器B的资源




假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。

现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术。
 
2、加速访问服务器B资源
这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。
 
还是如图2假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。
 
3、Cache作用




Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。如上图所示,如果在用户A访问服务器B某数据F之前,已经有人通过代理服务器Z访问过服务器B上得数据F,那么代理服务器Z会把数据F保存一段时间,如果有人正好取该数据F,那么代理服务器Z不再访问服务器B,而把缓存的数据F直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据F,而不用千里迢迢的去服务器B下载数据了。
 
4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA Server做为正向代理服务器来授权用户是否有权限访问互联网,如下图所示:




如上图防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。
 
5、隐藏访问者的行踪
如下图所示,我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。




 
总结正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
 
Nginx正向代理配置示例如下:
server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 82;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}1、不能有hostname。 
2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。 
3、配置正向代理参数,均是由 Nginx 变量组成。
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host; 4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30; 5、配置代理服务器 Http 状态缓存时间。  
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m; 配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。


二、反向代理(reverse proxy)

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




用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。
 
2、负载均衡




当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。

当然反向代理服务器像正向代理服务器一样拥有Cache的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器组请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图所示:




我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。

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

基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在Windows平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说Nginx不能做正向代理,其实是不对的。Nginx也可以做正向代理,不过用的人比较少了。
 
Nginx反向代理示例:
http {
# 省略了前面一般的配置,直接从负载均衡这里开始
# 设置地址池,后端3台服务器
upstream http_server_pool {
server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;
server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;
server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;
}
# 一个虚拟主机,用来反向代理http_server_pool这组服务器
server {
listen 80;
# 外网访问的域名
server_name www.test.com;
location / {
# 后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_pass http://http_server_pool;
proxy_set_header Host www.test.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log logs/www.test.com.access.log combined;
}
}最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf
server {
listen 80;
server_name test.zhoumengkang.com;
location / {
proxy_pass http://121.199.**.*:80;
}
}参考:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html 
 

三、透明代理

如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。

透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图所示:




用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
 
Nginx透明代理配置示例:
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080RAW Paste Data# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080参考:
http://z00w00.blog.51cto.com/515114/1031287  
https://mengkang.net/78.html   查看全部
通常我们都知道Nginx性能很高,尤其是作为一个代理服务器,因为它用的是epoll模型,就比如Python Django Web的性能不行,我们可能就会在前端加一个nginx代理,从而提高总体的处理性能问题,但是我们常说的代理,值的是什么类型的代理呢,你知道吗?
 
代理服务技术是在互联网早期就出现被使用的。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围和nginx的配置案例,便于大家更深入理解代理服务技术。
 


一、正向代理(Forward Proxy)


一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。
 
正向代理(forward)是一个位于客户端 【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理,如下图所示:
ForwardAgent.png

从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器【Z】替代访问方【用户A】去访问目标服务器【服务器B】。
 
这就是正向代理的意义所在。而为什么要用代理服务器【Z】去代替访问方【用户A】去访问服务器【B】呢?为什么不直接访问呢,这就要从场景和代理服务器使用的意义说起。
 
使用正向代理的意义和场景有如下几种:
 
1、用户访问本来无法访问的服务器B的资源
SpeedAccess.png

假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。

现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术。
 
2、加速访问服务器B资源
这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。
 
还是如图2假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。
 
3、Cache作用
CacheFile.png

Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。如上图所示,如果在用户A访问服务器B某数据F之前,已经有人通过代理服务器Z访问过服务器B上得数据F,那么代理服务器Z会把数据F保存一段时间,如果有人正好取该数据F,那么代理服务器Z不再访问服务器B,而把缓存的数据F直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据F,而不用千里迢迢的去服务器B下载数据了。
 
4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA Server做为正向代理服务器来授权用户是否有权限访问互联网,如下图所示:
AccessAuth.png

如上图防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。
 
5、隐藏访问者的行踪
如下图所示,我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。
Hidden.png

 
总结正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
 
Nginx正向代理配置示例如下:
server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 82;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}
1、不能有hostname。 
2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。 
3、配置正向代理参数,均是由 Nginx 变量组成。
proxy_pass $scheme://$host$request_uri;  
proxy_set_header Host $http_host;
4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。
proxy_buffers 256 4k;  
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
5、配置代理服务器 Http 状态缓存时间。  
proxy_cache_valid 200 302 10m;  
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。


二、反向代理(reverse proxy)


反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
 
使用反向代理服务器的作用如下:
 
1、保护和隐藏原始资源服务器
RevProxy.png

用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。
 
2、负载均衡
LoadBlance.png

当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。

当然反向代理服务器像正向代理服务器一样拥有Cache的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器组请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图所示:
CdnProxy.png

我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。

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

基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在Windows平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说Nginx不能做正向代理,其实是不对的。Nginx也可以做正向代理,不过用的人比较少了。
 
Nginx反向代理示例:
http {
# 省略了前面一般的配置,直接从负载均衡这里开始
# 设置地址池,后端3台服务器
upstream http_server_pool {
server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;
server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;
server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;
}
# 一个虚拟主机,用来反向代理http_server_pool这组服务器
server {
listen 80;
# 外网访问的域名
server_name www.test.com;
location / {
# 后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_pass http://http_server_pool;
proxy_set_header Host www.test.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log logs/www.test.com.access.log combined;
}
}
最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf
server {
listen 80;
server_name test.zhoumengkang.com;
location / {
proxy_pass http://121.199.**.*:80;
}
}
参考:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html 
 


三、透明代理


如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。

透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图所示:
tmproxy.png

用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
 
Nginx透明代理配置示例:
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080
RAW Paste Data
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080
参考:
http://z00w00.blog.51cto.com/515114/1031287  
https://mengkang.net/78.html  

负载均衡软件和Web应用服务器详解

运维技术Rock 发表了文章 • 0 个评论 • 1005 次浏览 • 2016-04-03 23:10 • 来自相关话题

为什么我们使用软件负载均衡​

[]海量并发下分散请求,减轻服务压力,分布式部署,容灾,解决单点问题,端口复用节约服务器资源[/][]硬件负载均衡成本较高,设备维护较为复杂,稳定性高[/][]nginx haproxy lvs(piranha)[/][]php+fastcgi,modjk+tomcat [/]

软件负责均衡原理

负载均衡分为七层和四层负载均衡,是由通信协议决定均衡模式,如SSL 443是TCP模式,http请求是应用层模式,然后按照一定的调度算法把请求调度到相应的节点
[]在统一接入层进行请求调度均衡[/][]按照服务器性能调度请求,权值调整[/][]业务层逻辑解耦,按照URL分发[/][]IP层,按照网段分发[/][]容灾 [/][]自适应性调度(nginx+fasctcgi,modjk+apache)[/]
注意事项:
[]服务是否长连接 [/][]是否会话黏贴 [/][]32位系统和64位系统网络中断问题[/][]安全相关  [/][]维护成本 [/][]节点生存检测 [/][]算法选择[/][]避免跨IDC 跨网段 跨楼层[/]

负责均衡软件特点

LVS特点:
[]抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;[/][]稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)[/][]应用范围比较广,可以对所有应用做负载均衡;[/][]不支持正则处理,不能做动静分离。 [/]
常用四种算法:
[]rr:轮叫,轮流分配到后端服务器;[/][]wrr:权重轮叫,根据后端服务器负载情况来分配;[/][]lc:最小连接,分配已建立连接最少的服务器上;[/][]wlc:权重最小连接,根据后端服务器处理能力来分配。[/]
可以采用ipvsadm –p(persistence)来保持session,默认是300/s 。
 
Nginx特点:
[]工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)[/][]配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;[/][]抗高并发,采用epoll网络模型处理客户请求;[/][]支持HTTP、TCP和EMail,应用范围比较少;[/][]nginx主要是HTTP和反向代理服务器,低系统资源消耗。[/]
常用四种算法:
[]RR:(默认)轮询,轮流分配到后端服务器;[/][]weight:根据后端服务器性能分配;[/][]ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;[/][]fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。 [/]
 
Haproxy特点:
[]支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;[/][]配置简单,支持url检测后端服务器状态;[/][]仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;[/][]TCP层多用于Mysql从(读)服务器负载均衡。 [/]
常用四种算法:
[]roundrobin:轮询,轮流分配到后端服务器;[/][]static-rr:根据后端服务器性能分配;[/][]leastconn:最小连接者优先处理;[/][]source:根据请求源IP,与Nginx的IP_Hash类似。[/]

为什么要解决session会话

负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!

Web应用服务器对比

主流应用服务器:
[]Apache后台服务器(主要处理php及一些功能请求 如:中文url)[/][]Nginx前端服务器(利用它占用系统资源少得优势来处理静态页面 大量请求)[/][]Lighttpd 图片服务器[/]
总体来说,随着nginx功能得完善将使他成为今后web server的主流。
三种服务器对比: 查看全部


为什么我们使用软件负载均衡​


    []海量并发下分散请求,减轻服务压力,分布式部署,容灾,解决单点问题,端口复用节约服务器资源[/][]硬件负载均衡成本较高,设备维护较为复杂,稳定性高[/][]nginx haproxy lvs(piranha)[/][]php+fastcgi,modjk+tomcat [/]


软件负责均衡原理


负载均衡分为七层和四层负载均衡,是由通信协议决定均衡模式,如SSL 443是TCP模式,http请求是应用层模式,然后按照一定的调度算法把请求调度到相应的节点
    []在统一接入层进行请求调度均衡[/][]按照服务器性能调度请求,权值调整[/][]业务层逻辑解耦,按照URL分发[/][]IP层,按照网段分发[/][]容灾 [/][]自适应性调度(nginx+fasctcgi,modjk+apache)[/]

注意事项:
    []服务是否长连接 [/][]是否会话黏贴 [/][]32位系统和64位系统网络中断问题[/][]安全相关  [/][]维护成本 [/][]节点生存检测 [/][]算法选择[/][]避免跨IDC 跨网段 跨楼层[/]


负责均衡软件特点


LVS特点:
    []抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;[/][]稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)[/][]应用范围比较广,可以对所有应用做负载均衡;[/][]不支持正则处理,不能做动静分离。 [/]

常用四种算法:
    []rr:轮叫,轮流分配到后端服务器;[/][]wrr:权重轮叫,根据后端服务器负载情况来分配;[/][]lc:最小连接,分配已建立连接最少的服务器上;[/][]wlc:权重最小连接,根据后端服务器处理能力来分配。[/]

可以采用ipvsadm –p(persistence)来保持session,默认是300/s 。
 
Nginx特点:
    []工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)[/][]配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;[/][]抗高并发,采用epoll网络模型处理客户请求;[/][]支持HTTP、TCP和EMail,应用范围比较少;[/][]nginx主要是HTTP和反向代理服务器,低系统资源消耗。[/]

常用四种算法:
    []RR:(默认)轮询,轮流分配到后端服务器;[/][]weight:根据后端服务器性能分配;[/][]ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;[/][]fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。 [/]

 
Haproxy特点:
    []支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;[/][]配置简单,支持url检测后端服务器状态;[/][]仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;[/][]TCP层多用于Mysql从(读)服务器负载均衡。 [/]

常用四种算法:
    []roundrobin:轮询,轮流分配到后端服务器;[/][]static-rr:根据后端服务器性能分配;[/][]leastconn:最小连接者优先处理;[/][]source:根据请求源IP,与Nginx的IP_Hash类似。[/]


为什么要解决session会话


负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!


Web应用服务器对比


主流应用服务器:
    []Apache后台服务器(主要处理php及一些功能请求 如:中文url)[/][]Nginx前端服务器(利用它占用系统资源少得优势来处理静态页面 大量请求)[/][]Lighttpd 图片服务器[/]

总体来说,随着nginx功能得完善将使他成为今后web server的主流。
三种服务器对比:
db.png

7款不错的网站数据分析工具

运维技术koyo 发表了文章 • 1 个评论 • 291 次浏览 • 2017-07-29 14:48 • 来自相关话题

拥有并运营一个很棒的网站不是一件简单的事情。除了需要决定网站的类型之外,你还需要运营网站,关注网站的各项数据并且决定使用何种手段增加流量。

你应该感到庆幸的是,这其实并没有那么复杂,但需要付出一些努力以及使用正确的工具。在这之后,你可以尝试使用各种不同的工具让工作流程更高效。

单靠一个工具是不可能完成所有事情的。所以要点在于要涉及各种不同的选择,比如分析工具、任务管理、流程自动化以及图形设计等。下面就列出了一些可以帮助站长提升品牌的最有价值的工具。
 

1、SE Ranking

SE Ranking 是一个基于云端的大而全的 SEO 服务。它帮站长减轻了不少负担,节约了生成报表的时间,同时在市场战略和发展计划的准备、分析以及调整等各个环节都很有帮助。

这个服务不仅仅是用来跟踪网站的排名,而且也可以用于各种复杂度的营销推广计划上。




SE Ranking 对这一代站长来说确实是一个非常有用也有很前景的 SEO 工具。尽管它在市场上还很新颖,但在实践中用起来还不错。

它里面有一系列很棒的功能,包括像关键词推荐、反向链接的监控,社交管理以及网站审计。我还没发现什么 SE Ranking的弱点,但我还是建议你尝试一下,也验证下所列出的各个功能的有效性。




 

2、Piktochart

Piktochart 是我最喜欢的在线信息图生成器,它可以让非专业设计师也能创建一些基本的设计图。如果没有时间或预算设计很好的信息图,那么就可以使用 Piktochart 把几个很赞的元素拼接起来生成想要快速进行病毒式传播的设计图。

Piktochart 是一个傻瓜式的工具,可创建不同的图表、地图和视频,而且它还有自动保存的功能。




基础版是免费的,但是只有一些有限的功能。你也可以使用解锁了所有功能的高级版。

如果你需要搜寻灵感和想法来创造出一些独特的东西,那么 Piktochart 就是你需要的工具。Piktochart 本身就充满了灵感,而且导航非常清晰易用。
 

3、Google Analytics

Google Analytics 是市场上最强大的分析服务之一。它可以让你分析流量,展示人口统计信息(年龄,性别等),另外也可以看到访客信息,包括新访客和回访访客。

不仅可以看到访客的地理位置,还可以发现他们在网站上做了什么。这样详细的人群统计信息也会帮助你预先计划网站未来的内容。




Google Analytics 是一个免费的网页版应用,只要有网络连接就可以随时随地使用。它的图表好看,而提供的结果也相当准确。另外它还可以在很多方面提供帮助,比如 A/B 测试和 Adwords 接入,这些都可以帮助提升用户体验。
 

4、Mention

Mention 是一个很不错的网络和社交媒体监控工具,其用户友好的界面非常简单易用。

该工具提供的免费套餐允许你每个月追踪最多500次品牌名字提及(@的次数)。如果你想追踪的提及次数超过500次,那么可以试试每月29美元起的高级套餐。




Mention 对于任何站长都绝对是节省时间的利器,因为你还可以再次转发这些推文,在 Facebook 页面上点赞或者分享积极的分享推文,以及通过 Email 发送推特文章。与其他工具相比,Mention 推送的通知非常地快,而且它还有一个很棒的功能就是可以在屏幕上预览结果。
 

5、Work Examiner

Work Examiner 可以帮助网站管理员管理很多项目。尽管有人会认为这侵犯了隐私,但是它作为一种监控员工的日常职责和收集员工工作时间的分配数据的方式还是相当有效的。通过这个工具,你可以限制员工访问某些可能会让他们分心的内容。




 

6、Ahrefs

Ahrefs 是从我开始 SEO 职业生涯以来就最喜欢的一个链接生成工具。该工具为站长分析链接信息提供了多个选项,可以让你知道一个网站的当前链接状态,并且可以帮助你理解网站内容和竞争对手。




在 Ahref 套装里,可以看到关键词分析,批量分析,站点探索,反向链接报表,域名比较以及竞争分析的工具。它高速的性能和图形化的展示甚至可以让SEO 新手都很容易地理解。




 

7、SEMrush

SEMrush 是一个为 SEO 专家和站长设计的多功能 SEO 工具,可用来研究客户的相关信息。该工具可让你全面了解客户,找到最佳关键词,排名超过竞争对手,检查他们的网站流量情况,找到所有的网站问题等等。

SEMrush 是一个一应俱全的 SEO 工具,提供了很多其他工具所没有的一系列有用的功能特性。




若想获得一份竞争对手网站全面又细致的分析数据,SEMrush 的高级账号会更好用些。 如果你是一个 SEO 初学者,你可以从免费试用账号开始,把 SEMrush 的所有有价值的功能全部体验一遍。




 

总结

网络上有很多为站长和网络营销人员提供的 SEO 工具。不管你是已经拥有了一堆网站,还是在创建一个网站的过程中,亦或是有了启动下一个大项目的计划,你都应该从上述7个工具里获得显著的好处。
 
分享英文原文:http://marketingland.com/top-7-must-tools-website-owners-165538 
 
  查看全部
WebSiteTools.png

拥有并运营一个很棒的网站不是一件简单的事情。除了需要决定网站的类型之外,你还需要运营网站,关注网站的各项数据并且决定使用何种手段增加流量。

你应该感到庆幸的是,这其实并没有那么复杂,但需要付出一些努力以及使用正确的工具。在这之后,你可以尝试使用各种不同的工具让工作流程更高效。

单靠一个工具是不可能完成所有事情的。所以要点在于要涉及各种不同的选择,比如分析工具、任务管理、流程自动化以及图形设计等。下面就列出了一些可以帮助站长提升品牌的最有价值的工具。
 


1、SE Ranking


SE Ranking 是一个基于云端的大而全的 SEO 服务。它帮站长减轻了不少负担,节约了生成报表的时间,同时在市场战略和发展计划的准备、分析以及调整等各个环节都很有帮助。

这个服务不仅仅是用来跟踪网站的排名,而且也可以用于各种复杂度的营销推广计划上。
Ranking.png

SE Ranking 对这一代站长来说确实是一个非常有用也有很前景的 SEO 工具。尽管它在市场上还很新颖,但在实践中用起来还不错。

它里面有一系列很棒的功能,包括像关键词推荐、反向链接的监控,社交管理以及网站审计。我还没发现什么 SE Ranking的弱点,但我还是建议你尝试一下,也验证下所列出的各个功能的有效性。
filter.png

 


2、Piktochart


Piktochart 是我最喜欢的在线信息图生成器,它可以让非专业设计师也能创建一些基本的设计图。如果没有时间或预算设计很好的信息图,那么就可以使用 Piktochart 把几个很赞的元素拼接起来生成想要快速进行病毒式传播的设计图。

Piktochart 是一个傻瓜式的工具,可创建不同的图表、地图和视频,而且它还有自动保存的功能。
Piktochart.png

基础版是免费的,但是只有一些有限的功能。你也可以使用解锁了所有功能的高级版。

如果你需要搜寻灵感和想法来创造出一些独特的东西,那么 Piktochart 就是你需要的工具。Piktochart 本身就充满了灵感,而且导航非常清晰易用。
 


3、Google Analytics


Google Analytics 是市场上最强大的分析服务之一。它可以让你分析流量,展示人口统计信息(年龄,性别等),另外也可以看到访客信息,包括新访客和回访访客。

不仅可以看到访客的地理位置,还可以发现他们在网站上做了什么。这样详细的人群统计信息也会帮助你预先计划网站未来的内容。
googlea.png

Google Analytics 是一个免费的网页版应用,只要有网络连接就可以随时随地使用。它的图表好看,而提供的结果也相当准确。另外它还可以在很多方面提供帮助,比如 A/B 测试和 Adwords 接入,这些都可以帮助提升用户体验。
 


4、Mention


Mention 是一个很不错的网络和社交媒体监控工具,其用户友好的界面非常简单易用。

该工具提供的免费套餐允许你每个月追踪最多500次品牌名字提及(@的次数)。如果你想追踪的提及次数超过500次,那么可以试试每月29美元起的高级套餐。
mention.png

Mention 对于任何站长都绝对是节省时间的利器,因为你还可以再次转发这些推文,在 Facebook 页面上点赞或者分享积极的分享推文,以及通过 Email 发送推特文章。与其他工具相比,Mention 推送的通知非常地快,而且它还有一个很棒的功能就是可以在屏幕上预览结果。
 


5、Work Examiner


Work Examiner 可以帮助网站管理员管理很多项目。尽管有人会认为这侵犯了隐私,但是它作为一种监控员工的日常职责和收集员工工作时间的分配数据的方式还是相当有效的。通过这个工具,你可以限制员工访问某些可能会让他们分心的内容。
workex.png

 


6、Ahrefs


Ahrefs 是从我开始 SEO 职业生涯以来就最喜欢的一个链接生成工具。该工具为站长分析链接信息提供了多个选项,可以让你知道一个网站的当前链接状态,并且可以帮助你理解网站内容和竞争对手。
ahrefs.png

在 Ahref 套装里,可以看到关键词分析,批量分析,站点探索,反向链接报表,域名比较以及竞争分析的工具。它高速的性能和图形化的展示甚至可以让SEO 新手都很容易地理解。
SiteEx.png

 


7、SEMrush


SEMrush 是一个为 SEO 专家和站长设计的多功能 SEO 工具,可用来研究客户的相关信息。该工具可让你全面了解客户,找到最佳关键词,排名超过竞争对手,检查他们的网站流量情况,找到所有的网站问题等等。

SEMrush 是一个一应俱全的 SEO 工具,提供了很多其他工具所没有的一系列有用的功能特性。
semrush.png

若想获得一份竞争对手网站全面又细致的分析数据,SEMrush 的高级账号会更好用些。 如果你是一个 SEO 初学者,你可以从免费试用账号开始,把 SEMrush 的所有有价值的功能全部体验一遍。
trial.png

 


总结


网络上有很多为站长和网络营销人员提供的 SEO 工具。不管你是已经拥有了一堆网站,还是在创建一个网站的过程中,亦或是有了启动下一个大项目的计划,你都应该从上述7个工具里获得显著的好处。
 
分享英文原文:http://marketingland.com/top-7-must-tools-website-owners-165538 
 
 

代理到底有几种功能模式?

运维技术Ansible 发表了文章 • 0 个评论 • 539 次浏览 • 2017-03-21 22:39 • 来自相关话题

通常我们都知道Nginx性能很高,尤其是作为一个代理服务器,因为它用的是epoll模型,就比如Python Django Web的性能不行,我们可能就会在前端加一个nginx代理,从而提高总体的处理性能问题,但是我们常说的代理,值的是什么类型的代理呢,你知道吗?
 
代理服务技术是在互联网早期就出现被使用的。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围和nginx的配置案例,便于大家更深入理解代理服务技术。
 

一、正向代理(Forward Proxy)

一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。
 
正向代理(forward)是一个位于客户端 【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理,如下图所示:




从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器【Z】替代访问方【用户A】去访问目标服务器【服务器B】。
 
这就是正向代理的意义所在。而为什么要用代理服务器【Z】去代替访问方【用户A】去访问服务器【B】呢?为什么不直接访问呢,这就要从场景和代理服务器使用的意义说起。
 
使用正向代理的意义和场景有如下几种:
 
1、用户访问本来无法访问的服务器B的资源




假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。

现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术。
 
2、加速访问服务器B资源
这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。
 
还是如图2假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。
 
3、Cache作用




Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。如上图所示,如果在用户A访问服务器B某数据F之前,已经有人通过代理服务器Z访问过服务器B上得数据F,那么代理服务器Z会把数据F保存一段时间,如果有人正好取该数据F,那么代理服务器Z不再访问服务器B,而把缓存的数据F直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据F,而不用千里迢迢的去服务器B下载数据了。
 
4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA Server做为正向代理服务器来授权用户是否有权限访问互联网,如下图所示:




如上图防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。
 
5、隐藏访问者的行踪
如下图所示,我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。




 
总结正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
 
Nginx正向代理配置示例如下:
server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 82;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}1、不能有hostname。 
2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。 
3、配置正向代理参数,均是由 Nginx 变量组成。
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host; 4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30; 5、配置代理服务器 Http 状态缓存时间。  
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m; 配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。


二、反向代理(reverse proxy)

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




用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。
 
2、负载均衡




当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。

当然反向代理服务器像正向代理服务器一样拥有Cache的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器组请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图所示:




我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。

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

基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在Windows平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说Nginx不能做正向代理,其实是不对的。Nginx也可以做正向代理,不过用的人比较少了。
 
Nginx反向代理示例:
http {
# 省略了前面一般的配置,直接从负载均衡这里开始
# 设置地址池,后端3台服务器
upstream http_server_pool {
server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;
server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;
server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;
}
# 一个虚拟主机,用来反向代理http_server_pool这组服务器
server {
listen 80;
# 外网访问的域名
server_name www.test.com;
location / {
# 后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_pass http://http_server_pool;
proxy_set_header Host www.test.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log logs/www.test.com.access.log combined;
}
}最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf
server {
listen 80;
server_name test.zhoumengkang.com;
location / {
proxy_pass http://121.199.**.*:80;
}
}参考:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html 
 

三、透明代理

如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。

透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图所示:




用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
 
Nginx透明代理配置示例:
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080RAW Paste Data# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080参考:
http://z00w00.blog.51cto.com/515114/1031287  
https://mengkang.net/78.html   查看全部
通常我们都知道Nginx性能很高,尤其是作为一个代理服务器,因为它用的是epoll模型,就比如Python Django Web的性能不行,我们可能就会在前端加一个nginx代理,从而提高总体的处理性能问题,但是我们常说的代理,值的是什么类型的代理呢,你知道吗?
 
代理服务技术是在互联网早期就出现被使用的。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围和nginx的配置案例,便于大家更深入理解代理服务技术。
 


一、正向代理(Forward Proxy)


一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。
 
正向代理(forward)是一个位于客户端 【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理,如下图所示:
ForwardAgent.png

从上面的概念中,我们看出,文中所谓的正向代理就是代理服务器【Z】替代访问方【用户A】去访问目标服务器【服务器B】。
 
这就是正向代理的意义所在。而为什么要用代理服务器【Z】去代替访问方【用户A】去访问服务器【B】呢?为什么不直接访问呢,这就要从场景和代理服务器使用的意义说起。
 
使用正向代理的意义和场景有如下几种:
 
1、用户访问本来无法访问的服务器B的资源
SpeedAccess.png

假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。

现实中的例子就是“翻墙”。不过自从VPN技术被广泛应用外,“翻墙”不但使用了传统的正向代理技术,有的还使用了VPN技术。
 
2、加速访问服务器B资源
这种说法目前不像以前那么流行了,主要是带宽流量的飞速发展。早期的正向代理中,很多人使用正向代理就是提速。
 
还是如图2假设用户A到服务器B,经过R1路由器和R2路由器,而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z,从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。
 
3、Cache作用
CacheFile.png

Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。如上图所示,如果在用户A访问服务器B某数据F之前,已经有人通过代理服务器Z访问过服务器B上得数据F,那么代理服务器Z会把数据F保存一段时间,如果有人正好取该数据F,那么代理服务器Z不再访问服务器B,而把缓存的数据F直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据F,而不用千里迢迢的去服务器B下载数据了。
 
4、客户端访问授权
这方面的内容现今使用的还是比较多的,例如一些公司采用ISA Server做为正向代理服务器来授权用户是否有权限访问互联网,如下图所示:
AccessAuth.png

如上图防火墙作为网关,用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器,用户A允许访问互联网,而用户B不允许访问互联网(这个在代理服务器Z上做限制)这样用户A因为授权,可以通过代理服务器访问到服务器B,而用户B因为没有被代理服务器Z授权,所以访问服务器B时,数据包会被直接丢弃。
 
5、隐藏访问者的行踪
如下图所示,我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。
Hidden.png

 
总结正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
 
Nginx正向代理配置示例如下:
server{
resolver 8.8.8.8;
resolver_timeout 30s;
listen 82;
location / {
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}
1、不能有hostname。 
2、必须有resolver, 即dns,即上面的8.8.8.8,超时时间(30秒)可选。 
3、配置正向代理参数,均是由 Nginx 变量组成。
proxy_pass $scheme://$host$request_uri;  
proxy_set_header Host $http_host;
4、配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。
proxy_buffers 256 4k;  
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
5、配置代理服务器 Http 状态缓存时间。  
proxy_cache_valid 200 302 10m;  
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
配置好后,重启nginx,以浏览器为例,要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+82(82是刚刚设置的端口号)即可使用了。


二、反向代理(reverse proxy)


反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
 
使用反向代理服务器的作用如下:
 
1、保护和隐藏原始资源服务器
RevProxy.png

用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。
 
2、负载均衡
LoadBlance.png

当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。

当然反向代理服务器像正向代理服务器一样拥有Cache的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器组请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。如下图所示:
CdnProxy.png

我们并不是讲解CDN,所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。

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

基本上,网上做正反向代理的程序很多,能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid,既可以做正向代理,也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在Windows平台下做正向代理。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。网上有人说Nginx不能做正向代理,其实是不对的。Nginx也可以做正向代理,不过用的人比较少了。
 
Nginx反向代理示例:
http {
# 省略了前面一般的配置,直接从负载均衡这里开始
# 设置地址池,后端3台服务器
upstream http_server_pool {
server 192.168.1.2:8080 weight=2 max_fails=2 fail_timeout=30s;
server 192.168.1.3:8080 weight=3 max_fails=2 fail_timeout=30s;
server 192.168.1.4:8080 weight=4 max_fails=2 fail_timeout=30s;
}
# 一个虚拟主机,用来反向代理http_server_pool这组服务器
server {
listen 80;
# 外网访问的域名
server_name www.test.com;
location / {
# 后端服务器返回500 503 404错误,自动请求转发到upstream池中另一台服务器
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_pass http://http_server_pool;
proxy_set_header Host www.test.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log logs/www.test.com.access.log combined;
}
}
最简单的反向代理演示(在一台服务器上做代理服务器,将http请求转发到另一台IIS服务器上,通过二级域名形式访问。)编辑vim nginx.conf
server {
listen 80;
server_name test.zhoumengkang.com;
location / {
proxy_pass http://121.199.**.*:80;
}
}
参考:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html 
 


三、透明代理


如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 。

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。

透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图所示:
tmproxy.png

用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
 
Nginx透明代理配置示例:
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080
RAW Paste Data
# cat /etc/nginx/sites-enabled/proxy
server {
resolver 8.8.8.8;
access_log off;
listen [::]:8080;
location / {
proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
}
}

iptables -t nat -A PREROUTING -s 10.8.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.253:8080
参考:
http://z00w00.blog.51cto.com/515114/1031287  
https://mengkang.net/78.html  

负载均衡软件和Web应用服务器详解

运维技术Rock 发表了文章 • 0 个评论 • 1005 次浏览 • 2016-04-03 23:10 • 来自相关话题

为什么我们使用软件负载均衡​

[]海量并发下分散请求,减轻服务压力,分布式部署,容灾,解决单点问题,端口复用节约服务器资源[/][]硬件负载均衡成本较高,设备维护较为复杂,稳定性高[/][]nginx haproxy lvs(piranha)[/][]php+fastcgi,modjk+tomcat [/]

软件负责均衡原理

负载均衡分为七层和四层负载均衡,是由通信协议决定均衡模式,如SSL 443是TCP模式,http请求是应用层模式,然后按照一定的调度算法把请求调度到相应的节点
[]在统一接入层进行请求调度均衡[/][]按照服务器性能调度请求,权值调整[/][]业务层逻辑解耦,按照URL分发[/][]IP层,按照网段分发[/][]容灾 [/][]自适应性调度(nginx+fasctcgi,modjk+apache)[/]
注意事项:
[]服务是否长连接 [/][]是否会话黏贴 [/][]32位系统和64位系统网络中断问题[/][]安全相关  [/][]维护成本 [/][]节点生存检测 [/][]算法选择[/][]避免跨IDC 跨网段 跨楼层[/]

负责均衡软件特点

LVS特点:
[]抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;[/][]稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)[/][]应用范围比较广,可以对所有应用做负载均衡;[/][]不支持正则处理,不能做动静分离。 [/]
常用四种算法:
[]rr:轮叫,轮流分配到后端服务器;[/][]wrr:权重轮叫,根据后端服务器负载情况来分配;[/][]lc:最小连接,分配已建立连接最少的服务器上;[/][]wlc:权重最小连接,根据后端服务器处理能力来分配。[/]
可以采用ipvsadm –p(persistence)来保持session,默认是300/s 。
 
Nginx特点:
[]工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)[/][]配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;[/][]抗高并发,采用epoll网络模型处理客户请求;[/][]支持HTTP、TCP和EMail,应用范围比较少;[/][]nginx主要是HTTP和反向代理服务器,低系统资源消耗。[/]
常用四种算法:
[]RR:(默认)轮询,轮流分配到后端服务器;[/][]weight:根据后端服务器性能分配;[/][]ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;[/][]fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。 [/]
 
Haproxy特点:
[]支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;[/][]配置简单,支持url检测后端服务器状态;[/][]仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;[/][]TCP层多用于Mysql从(读)服务器负载均衡。 [/]
常用四种算法:
[]roundrobin:轮询,轮流分配到后端服务器;[/][]static-rr:根据后端服务器性能分配;[/][]leastconn:最小连接者优先处理;[/][]source:根据请求源IP,与Nginx的IP_Hash类似。[/]

为什么要解决session会话

负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!

Web应用服务器对比

主流应用服务器:
[]Apache后台服务器(主要处理php及一些功能请求 如:中文url)[/][]Nginx前端服务器(利用它占用系统资源少得优势来处理静态页面 大量请求)[/][]Lighttpd 图片服务器[/]
总体来说,随着nginx功能得完善将使他成为今后web server的主流。
三种服务器对比: 查看全部


为什么我们使用软件负载均衡​


    []海量并发下分散请求,减轻服务压力,分布式部署,容灾,解决单点问题,端口复用节约服务器资源[/][]硬件负载均衡成本较高,设备维护较为复杂,稳定性高[/][]nginx haproxy lvs(piranha)[/][]php+fastcgi,modjk+tomcat [/]


软件负责均衡原理


负载均衡分为七层和四层负载均衡,是由通信协议决定均衡模式,如SSL 443是TCP模式,http请求是应用层模式,然后按照一定的调度算法把请求调度到相应的节点
    []在统一接入层进行请求调度均衡[/][]按照服务器性能调度请求,权值调整[/][]业务层逻辑解耦,按照URL分发[/][]IP层,按照网段分发[/][]容灾 [/][]自适应性调度(nginx+fasctcgi,modjk+apache)[/]

注意事项:
    []服务是否长连接 [/][]是否会话黏贴 [/][]32位系统和64位系统网络中断问题[/][]安全相关  [/][]维护成本 [/][]节点生存检测 [/][]算法选择[/][]避免跨IDC 跨网段 跨楼层[/]


负责均衡软件特点


LVS特点:
    []抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;[/][]稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)[/][]应用范围比较广,可以对所有应用做负载均衡;[/][]不支持正则处理,不能做动静分离。 [/]

常用四种算法:
    []rr:轮叫,轮流分配到后端服务器;[/][]wrr:权重轮叫,根据后端服务器负载情况来分配;[/][]lc:最小连接,分配已建立连接最少的服务器上;[/][]wlc:权重最小连接,根据后端服务器处理能力来分配。[/]

可以采用ipvsadm –p(persistence)来保持session,默认是300/s 。
 
Nginx特点:
    []工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)[/][]配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;[/][]抗高并发,采用epoll网络模型处理客户请求;[/][]支持HTTP、TCP和EMail,应用范围比较少;[/][]nginx主要是HTTP和反向代理服务器,低系统资源消耗。[/]

常用四种算法:
    []RR:(默认)轮询,轮流分配到后端服务器;[/][]weight:根据后端服务器性能分配;[/][]ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;[/][]fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。 [/]

 
Haproxy特点:
    []支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;[/][]配置简单,支持url检测后端服务器状态;[/][]仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;[/][]TCP层多用于Mysql从(读)服务器负载均衡。 [/]

常用四种算法:
    []roundrobin:轮询,轮流分配到后端服务器;[/][]static-rr:根据后端服务器性能分配;[/][]leastconn:最小连接者优先处理;[/][]source:根据请求源IP,与Nginx的IP_Hash类似。[/]


为什么要解决session会话


负载均衡环境下,每个用户都有可能不固定的访问后端服务器,在有些应用情况下,是必须要求在一定时间内同一用户访问的所有请求都分配给后端同一台服务器去处理,例如:电子商务网站,用户注册页面等,一刷新页面,就会分配到后端的另一台服务器上,那刚才的页面上的信息也都没了,这种情况下,分配同一台服务器处理请求是至关重要的!


Web应用服务器对比


主流应用服务器:
    []Apache后台服务器(主要处理php及一些功能请求 如:中文url)[/][]Nginx前端服务器(利用它占用系统资源少得优势来处理静态页面 大量请求)[/][]Lighttpd 图片服务器[/]

总体来说,随着nginx功能得完善将使他成为今后web server的主流。
三种服务器对比:
db.png
网站服务器技术分享