一切福田,不離方寸,從心而覓,感無不通。

如何在CentOS 7中安装Git

Git是在今天的软件开发行业一个非常有用的版本控制工具。我一直使用Git。于是为Linux公社的读者写一篇如何在CentOS 7中安装Git教程 什么是Git? 如果你曾经使用过Github这样的网站或者在Bitbucket 购买过代码,把它展示给你的朋友,那么你可能知道Git是什么。至少,你肯定对它有过了解。 Git是软件开发中最广泛使用的版本控制系统,其最初发布于九年前的2005年4月7日,主要是为了保证一个大型的分布式开发项目的顺利进行。和客户端 服务器系统的开发不同,开发者独立于网络访问或中央服务器,因为每个Git的工作目录是一个全面的资料库。 创始人Linus Torvalds决定遵循GNU通用公共许可证第二版的协议条款,免费的发布Git。维基百科中可以了解到,有许多语言来正在开发这个版本控制系统,如Perl, Bash, C and Tcl。 在GentOS7上安装Git之前,我必须明确Git支持主流的操作系统,如Linux,POSIX,Windows和OS X. 分割线 GitHub 教程系列文章: GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 分割线 前期准备 请确保您的机器上安装有CentOS 7系统以及一个帐户具有root权限。因为我们需要在系统上安装软件。 安装Git 从源代码编译 从源代码编译和安装软件并不是很难,但是可以肯定它需要一些知识,我强烈建议仔细地按照本教程的每个步骤,尤其是如果你之前还没有这样做过。 这个方法可以使我们获得包含最新的功能的最新的版本,但这种方法的缺点是,一旦安装完成正在被在CentOS系统中使用的yum包管理器不能更新 因为一些软件包之间有依赖关系,我们必须你必须以手动安装一些软件,才可以继续安装。于是我们可以打开CentOS7终端,运行以下命令。 拿到root权限 su root 使用下面的命令 sudo yum install Development Tools 如果 上面的命令没有执行,也可以使用下面的命令来解决这个问题。 yum  groupinstall Development Tools 选择Y并按下回车键。 然后运行下面的命令来安装需要本教程的一些其他的包。 1 sudo yum install gettext–devel openssl–devel perl–CPAN perl–devel zlib–devel 一旦依赖已经安装那么,我们需要找出并下载的Git软件的最新版本。下面的截图显示,我们可以得到最新版本的页面信息。 你可以从上面的截图看到最新的版本是V2.3.0。不要下载带有-rc的,因为它代表了一个候选发布版本。 通过使用wget的工具下载的Git的2.3.0版本。 1 wget https://Github.com/Git/Git/archive/v2.3.0.tar.gz 然后使用tar工具来解压您刚刚下载的.tar归档文件。 tar xvf v2.3.0.tar.gz   然后使用cd命令更改工作目录,如下所示。 […]

龙生   15 May 2017
View Details

你应该知道的9款流行 Web 框架及其优缺点

对于 Web 开发人员来说,找到一些合适的工具,能让工作轻松许多。这其中,Web 框架更是提升工作效率的“利器”。但因为可选的 Web 框架非常多,如何选择也是一件令人头疼的事情。 本文列出了9款目前比较流行的 Web 框架,并对优缺点进行分析,希望能对大家有所帮助。(内容主要编译自Ken Mazaika的The 9 Most In-Demand Web Frameworks And What You Need To Know About Them) 首先, 什么是 Web 框架? 当 Web 浏览器使用 HTTP 和在其他地方运行的服务器(计算机)通讯时,这些服务器会收到一些通知: 所选的 URL 如何输入网址(通过表单提交或只是在浏览器栏中输入网址) 服务器要干很多事情,比如: 读取数据库里的数据和添加数据 找到正确的结果(用户是否被允许查看试图访问的页面?是否要发送到不同的URL?等等) 构建用户将看到的网页 如果要提供更复杂的功能,就需要执行更多的步骤。作为开发人员,则需要对想要的功能列出一系列解决方案。Web 框架就是其中可选的解决方案之一。 进入正题: 1、Ruby on Rails 编程语言:Ruby 简介: Ruby on Rails 是一个已经被许多公司采用的 Web 框架,是 Ruby 编程语言中 Web 框架的鼻祖,获得了大量开发者的采用。DHH(Rails 的创始人)曾用它15分钟左右创建一个博客。 Rails 的一大特点是约定优于配置(convention over configuration)。这意味着,它比较模式化、标准化和“约定化”,开发者通常做的是相同的事情,可以让代码写到最少。 Rails 还使用了 MVC(Model-View-Controller),让架构更有组织性,更周密。 优点: Rails 具有强大的命令行界面,通过几个简单的命令就能在新的应用上启动和运行。 Rails 已经存在很长时间了,并且广泛被使用,网络上有很多关于它的教程。 Rails 简单易用,即便是复杂的问题,也能相对快速解决。 缺点: Rails 自动挂钩了很多东西。启动器里就包含很多文件,并且有相当多的配置代码是自动编写的,有些人可能会对此担心。 整体来看,鉴于其灵活性及便捷性,Rails 是一个非常理想的 Web 框架,值得初学者优先学习。 2、Sinatra 编程语言:Ruby 简介: 上面的5行代码就是做一个最低限度配置的空 Web 应用所需要的全部代码, 如果拿它和 Ruby on […]

龙生   15 May 2017
View Details

10+ 款 Web 开发常备工具

工欲善其事,必先利其器。如今 Web 开发标准越来越高,Web 开发者也在不断寻找途径提升自己的技能。为使大家的开发工作更顺利进行,本文整理了 10+ 款比较优秀的 Web 开发工具,希望对你有帮助。 喜欢的不要忘了收藏、点赞和打赏哦,感谢大家的支持! Bootstrap Bootstrap 是快速开发 Web 应用程序的前端工具包。它是一个 CSS 和 HTML 的集合,它使用了最新的浏览器技术,给你的 Web 开发提供了时尚的版式,表单,buttons,表格,网格系统等等。 DEMO:http://getbootstrap.com/     Atom Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器。具有简洁和直观的图形用户界面,并有很多有趣的特点:支持 CSS,HTML,JavaScript 等网页编程语言。它支持宏,自动完成分屏功能,集成了文件管理器。 DEMO:https://atom.io/ Foundation Foundation 是一个易用、强大而且灵活的框架,用于构建基于任何设备上的 Web 应用。提供多种 Web 上的 UI 组件,如表单、按钮、Tabs 等。 DEMO:http://foundation.zurb.com/ Fiddler Fiddler 是一个 http 调试代理,它能够记录所有的你电脑和互联网之间的 http 通讯,Fiddler 可以也可以让你检查所有的 http 通讯,设置断点,以及 Fiddle 所有的“进出”的数据。Fiddler 要比其他的网络调试器要更加简单,因为它不仅暴露 http 通讯还提供一个用户友好的格式。 DEMO:http://www.telerik.com/fiddler Cloud9 IDE Cloud9 IDE 是一个基于 Node.JS 构建的 JavaScript 程序开发 Web IDE。它拥有一个非常快的文本编辑器,支持为 JS,HTML,CSS 和这几种的混合代码进行着色显示。Cloud9 IDE 还为 node.js 和 Google Chrome 集成调试器,可以在 IDE 中启动、暂停和停止。 DEMO:http://c9.io/ Notepad++ Notepad++ 是一款非常有特色的编辑器,是开源软件,可以免费使用。支持的语言: C, C++ , Java , C#, XML, HTML, […]

龙生   15 May 2017
View Details

Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一、前言 二、环境准备 三、安装与配置Nginx 四、Nginx之反向代理 五、Nginx之负载均衡 六、Nginx之页面缓存 七、Nginx之URL重写 八、Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一、前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解、nginx作为web服务器的操作讲解、nginx作为LNMP架构的讲解,不清楚的博友可以回头看看,在这一篇博客中我们主要讲解, nginx的反向代理、负载均衡、缓存、URL重写以及读写分离详解。好了,下面我们来具体说一说。 二、环境准备 1. 操作系统 CentOS 6.4 x86_64 2.软件版本 Nginx 1.4.2 3.实验拓扑 注,实验拓扑见下文。 4.安装yum源 1 2 3 [root@nginx ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@web1 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@web2 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 5.各节点时间同步 1 2 3 [root@nginx ~]# ntpdate 202.120.2.101 [root@web1 ~]# ntpdate 202.120.2.101 [root@web2 ~]# ntpdate 202.120.2.101 6.关闭防火墙与SELinux 1 2 3 4 5 6 7 8 9 10 11 12 [root@nginx ~]# service iptables stop [root@nginx ~]# chkconfig iptables off  […]

龙生   15 May 2017
View Details

网页抓取以及一些防范的方法

随着互联网的兴起,网页抓取已经被越来越多的人所应用,可以用来做各种白色的,黑色的,灰色的程序。典型的如一淘就是正大光明的去抓取电商之间的价格来作对比。 然而,作为服务器端来说,网页抓取就是噩梦,一方面增大了服务器的压力,另一方面用机器人做了很多应该被禁止去做的事。 如何防范他们,我想,是现在服务器端一个需要研究的课题。这里就总结一下各种防范的措施。 如果严格的定义这个问题,我们就是要做人机识别。也就是我们不知道来的请求是人还是机发出来的,但是要根据行为特征或者是一些方法去判断请求到底来自人还是机(这个很像是图灵测试,但并不完全一样)。 所以,服务器在执行实际任务之前,需要对请求去判断到底是不是来自机器。而这个判断,针对不同机器人的方法方式,又有很多应对方法。 1. 常规办法。(这里的常规办法,实际上并不能完全应付网页抓取,之所以写下来,是总结一下对于抓取有障碍的地方。) User-Agent: 通过它可以判断客户端的浏览器,但是客户端可以更改 Referer:一般用它来防盗链,referer指被请求页面的前一页,同样可以被客户端程序总结并利用 Cookie:一般用来做认证,所以这个基本上是许多客户端程序必须要做的事,要么勾住一个已有的cookie来登陆,要么模拟一个新的页面来产生新的cookie HTTPS:一般用来防止半路被人截取消息,但是如果你本身也是客户端的话……你可以直接去解密消息,甚至附上需要的证书 2.验证码,上面讲的方式都可以被客户端程序利用,究竟什么方式才可以阻止机器呢?一个已经被广为接受的方式就是使用验证码。验证码是个比较好的方式,但是,真正要设计好却不太容易。 比较差的方式见参考2,这样的验证码通常是防不住聪明的客户端的。 另一种极端的方式即复杂到人都快要辨识不出来的,会带来很差的用户体验。 所以,稍好一点的方式是提出有一定智能才能回答的问题,比如新浪微博会问“黑龙江的省会”之类的常识性问题。(还有的会问1+1=?,我相信这也是很容易识别的) 当然,现在还有的方式是结合广告的验证码,这样还把商业模式也融入其中,比较典型的如:XX银行存款已经突破2亿,然后将其中银行两个字标成红色,剩下的蓝色,并要你输入红色的字。 但是验证码并非万能和一劳永逸的,首要的一点就是要考虑用户体验,不能用在所有的地方,只能用在关键性的入口 于是客户端程序又蠢蠢欲动了,只需要把验证码抓回来给人输入一次,后面便畅通无阻。 3.冻结IP,针对客户端程序频繁或者并发抓取的特征,可以将频繁或抓取的ip封锁(有的服务器提供配置),比如说一个网页正常人来操作需要0.7ms以上,但是客户端程序却能够0.3ms请求一次,这种频繁请求就能被判断作机器刷新,于是一个新的方式就是在系统全局范围内记录ip(比如hashtable或者memcache)以及访问时间,当访问时间较短时就暂时冻结该ip过来的请求。 好吧,道高一尺魔高一丈,客户端这时候就会采用多IP或者代理来访问(即分布式的客户端) 4.多IP的冻结,应当明白,多IP同样会有行为模式。比如来自同一个网段,一旦发现,可以封锁整个网段(虽然比较愚蠢),有的爬虫采用定时轮转,也很容易发现(时间比较规律,请求数量同样很大)。 于是又有的爬虫开始丢弃这些模式,并把自己伪装得更像人 5.利用js执行。大多数客户端程序都是直接请求html,同时只执行html而并不执行javascript(难度比较大),于是,可以在请求的js里面放入一段js,正常执行时该js会访问服务器端并留下一个痕迹,但是如果是爬虫,就会发现大量的请求后不会留下该痕迹,于是,封之。 上面说了,是大多数客户端程序。也就是说还有少数更聪明的。利用浏览器内核(比如webkit)或者配合js引擎(比如v8)来抓取…… 6.。。。貌似人类已经很难阻止了爬虫了,如果要说阻止,那同样还是抓取量是一个比较明显的特征(因为爬虫不可能像人一样那么慢,否则海量网页很难完成) 参考:图灵测试 http://baike.baidu.cn/view/94296.htm 简单的验证码 http://xiaoxia.org/2011/08/04/discussion-on-certain-webpage-code-and-bypassing-validation/ 防爬总结 http://www.cnblogs.com/xoray007/archive/2011/11/22/2258366.html 另一篇python如何爬网页的文章 http://www.pythonclub.org/python-network-application/observer-spider 反爬虫的实践 http://robbinfan.com/blog/11/anti-crawler-strategy from:http://blog.csdn.net/liweisnake/article/details/8847354

龙生   15 May 2017
View Details

曹德旺又讲大实话:中国除了人便宜,啥都比美国贵

9岁才上学、14岁被迫辍学,经历过食不果腹,被众人歧视的曹德旺,从承包乡镇小厂踏上创业路,终结了中国汽车玻璃市场100%依赖进口的历史,做出了中国第一、世界第二大汽车玻璃供应商--福耀玻璃集团。 2009年,他还获得有企业界奥斯卡之称的“安永全球企业家大奖”,他也是首位华人获得者。曹德旺的脾气与贡献,和他的能力与成就一样出名,他有话直说,包括批评各种不良现象;他捐款超过60亿人民币给慈善事业,但公开讲话,不喜欢把钱捐给某些部门或组织,因为不希望被浪费、被挪用、被糟蹋。 最近,曹先生又有话直说了。 因为宣布将投资10亿美金到美国建厂做汽车玻璃,第一财经采访了他。结果老先生真是只要你敢问,我就敢答。谈到中国实体经济的问题,他娓娓道来中包藏着大忧虑:中国实体经济的成本,除了人便宜,什么都比美国贵。 第一财经:我猜以后你在美国待的时间会越来越长?因为美国的机会就像你说的一样,遍地黄金,遍地是机会。 曹德旺:我不这样看。对中国人走出去投资(跟风式大干快上),我有一点惊讶。因为我做国内做40年了,我在美国投资是1995年开始,原来拿几百万美金、一千万美金去投资,对美国政治、文化、市场,观察了20年后我才下手。因为我在美国卖玻璃,我每年从美国卖回来七八亿美金,我只是把工厂迁移。 工厂迁移,一个是美国人再三要求我在那边办个工厂,第二个是我们国家现在制造业踟蹰不前,为什么呢?中国制造业的综合税务跟美国比的话比它高35%。 第一财经:高35%? 曹德旺:他没有增值税,我们有增值税。他只有所得税40%,你赚到钱,他的所得税35%,加地方税、保险费其他的这些5个百分点就是40%,因此在美国做工厂的利润比中国高。 第一财经:美国的土地一定很便宜吧。 曹德旺:他土地基本不要钱。 第一财经:能源呢? 曹德旺:能源,电价是中国一半,天然气只有中国的1/5。 第一财经:劳动力呢? 曹德旺:蓝领是中国8倍,白领是中国的2倍多,白领便宜,蓝领贵。 第一财经:综合劳动生产率是中国高还是美国高? 曹德旺:这样算吧。做一片夹层玻璃在中国要1块2,在美国要5块5,我们预算是6块5,差5块。差5块的时候我在美国做是5块5,顶掉了不要了。我们出口美国,出口是先征后退,在这基础上还要交4%,这样,一块玻璃出口需要交1块多钱,这就省去了1块多。那么在美国还有电价便宜,气价便宜,还有很多优惠条件,总的来说,算起来他那里比这里,总利润会差10%。 第一财经:就是在那边会? 曹德旺:多赚百分之十几。 第一财经:所以从劳动生产率来看还是? 曹德旺:中国高,劳动生产率还是中国高。因为我们中国能够招到年轻的工人,美国提出来恢复制造业大国,遇到的第一个难题是劳动力,年轻人不干,都跑到华尔街或者硅谷去。 第一财经:那你工厂两千多工人都怎么招来的? 曹德旺:招的都是跟我年纪一样大的人。 第一财经:制造玻璃或者制造其他的产品,劳动力是一个很严重的问题。 曹德旺:美国就是这个问题。全球各国现在都有问题,只是问题的性质不同。 第一财经:你刚才提到中国哀鸿遍野,你对中国现在整个经济形势是怎么判断的?很多人都很悲观,尤其是制造业。 曹德旺:我认为你们媒体有问题,中国问题先从媒体身上解决。你看美国那么强大的一个国家,它经济这个事情正常运营是波浪的。要求他这样平下来一直往上升,在变化波浪当中前进向上爬。应该允许他上允许他下。 我认为不能说是悲观,应该对中国经济的看法要坚持一个客观的态度来评价。因为我们这几年是从美国学回来去工业化,因为我们没有去工业化,美国那么大的国家,那么强大的国家,它现在开始,奥巴马当总统就开始号召恢复制造业大国,但是他发现现在不灵。现在强调政策回归到原来轨道上面,去工业化它经历了四十多年了,它又回去回到工业化的轨道上面去。搬回去最少要15年左右。 我们中国呢,现在你看看,最赚钱的就是IT,IT实际上本身没有赚钱,他就是忽悠就是从资本化利用民间钱拿来做这个事情,第二个就是私募基金、投资银行,银行这几年赚的盆满钵满。实体经济,因为劳工成本高,大家都去做房地产,盖房子要用劳力,变成我们有效的劳工被房地产拿去,再加上转金融业、IT业,这些服务业的高需要劳工也找不到人,这样的情况你说怎么做? 现在我们的制造业面临着,人工工资高,我们四年前跟今年比人工工资涨了多少呢?涨了三倍上来。 第三个运输成本高。我在美国的运输成本算下来,美元换成人民币,一公里还不到一块钱人民币,我们这里过路费比较高。 再加上,税收比美国高。我们比较了国际上,全球最高的在这里(注:除了在美国投资规模超过10亿美金的工厂,曹德旺还在俄罗斯等国家投资建厂,而且都是当地首屈一指的工业项目)。 再加上,我们认为投资化的重复建设,不仅仅是房地产过剩,商场过剩,酒店过剩,制造业这边,钢铁、玻璃、水泥全部过剩。我们宁可继续做哪些不靠谱的事情,从来没想过你救了今年,明年怎么办?救了明年,后年怎么办? 你知道拖一年严重一年。 中国是中国人的中国,建设中国、发展中国、保卫中国,是中国国土上每一位精英的责任。这些精英应该站出来说,我们要解决这个问题,有困难我们必须正面对待。 整天讲明年会好,明天会好。谁不想明天好。不切实际的去做那明天会好吗?我不这样认为。我认为我们应该改变这个方式。特别你们这些做传媒的。 我也在宣传给人家信心。信心要把问题讲清楚才行。不管怎么样,中国是中国人的中国,你不做那以后怎么办? 福耀美国工厂的竣工,也引起了《华盛顿邮报》的关注,并在10月27日的头版予以报道。一下为原作者Ylan Q.Mui, 图片 Andrew Spear报道翻译文: ▲工人在福耀玻璃工厂检查玻璃 俄亥俄州,莫瑞恩市 不久前的一个清晨,私人飞机刚刚降落俄亥俄州不久,中国亿万富翁就曹德旺沿着75号州际公路出发,前往他的工厂视察。在这间工厂上,他赌上了自己的遗产,以及美国夕阳工业区(原文称之为“铁锈地带”)的未来。 沿着俗称为“汽车巷”的公路直走下去,这间杂乱的大工厂曾是当地的地标。通用汽车在1920年代建造了它,此后工厂为几代人提供了叫做“蓝领”的工作,而这又定义了美国的中产阶级。但当最后一辆SUV从这里的组装线上驶出时,莫瑞恩市已经被一股浪潮冲毁--平价进口商品和廉价外国劳动力严重冲击了俄亥俄和全美国的工业城镇。 现在,亿万富翁曹德旺是这间工厂的新主宰,他是中国最大的汽车玻璃生产商福耀集团的董事长。令曹德旺从贫困的中国农村发家的,正是那股冲毁莫瑞恩的全球化浪潮。 这个活生生的财富翻转案例,已经令中国成为美国在公开讨论和政治辩论中的头号经济对手。在竞选总统的俄亥俄站演说中,共和党总统候选人唐纳德·特朗普(Donald Trump)就把对华贸易称为“单行道”。 ▲曹德旺视察福耀玻璃工厂 但全球化的下一个章节已经在福耀的工厂内部展开,因为世界经济的力量平衡再次发生倾斜。现在,中国的专家们开始担心经济增长失去动力,这促使富有的投资者和企业前往海外寻求利润。他们正在以创纪录的速度抢购美国企业,并雇佣数以万计的美国工人。 这种转换正在重构中美之间的利益联盟。在莫瑞恩,当地官员都指望福耀来帮助重振这个满是一元店的小镇。不过,这或许永远不足以弥补上一代人所失去的,也无法复原中国经济正在流失的动能。 然而,曹德旺仍坚信,像福耀这样的中国公司将消除两国之间的经济紧张。在灰蒙蒙的天空和蒙蒙细雨中,他来到了这座让他花两年时间和5亿美元重建的工厂。工厂所坐落的街道,已经被重命名为“福耀大道”。工厂大门外,美国国旗、俄亥俄州州旗与福耀的蓝白色旗帜一起迎风飘扬。 “我们致力于造福共同中美贸易关系,”他在一次访谈中通过翻译说道,“我们会克服所有的问题。” 一 福耀玻璃带来的生意 这间庞大的工厂大到足以装下41个橄榄球场,而曹德旺几乎每个月都要来莫瑞恩,在工厂里走一走。 这间工厂是福耀的最大单笔投资,满负荷运行时将有2500人在此工作。曹德旺表示,他希望这座工厂能够成为福耀在美国积极扩张的顶梁柱。此前,福耀已经在伊利诺伊州开设了一座生产原片玻璃的工厂,并在密歇根州设立了一座装配工厂。总投资额将达到约10亿美元。 “这个美国工厂就是他的孩子,”莫瑞恩工厂运营经理迈克·弗伦坎普(Mike Fullenkamp)说。 曹德旺是中国涌现出的第一批企业家,他的致富故事折射出就是这个国家本身。在1960-1970年代共产党政权下的贫苦福建省长大,曹德旺经常一天只能喝两碗汤,饥饿让他在痛苦中尖叫。 “我经历过中国最困难的时期,”现年70岁的曹德旺说。“即使我想哭,我也没有眼泪。” ▲福耀玻璃俄亥俄州工厂 1980年代中国刚开始经济开放时,曹德旺接管了一家濒临倒闭的工厂,他瞄准了中国规模迅速壮大的中产阶级,转而生产汽车企业中越来越抢手的玻璃窗和挡风玻璃。福耀开始向其他国家出口玻璃,为中国巨大的出口引擎贡献燃料。最终,出口使得中国变成了世界第二大经济体,仅次于美国。 与此同时,美国的工业正在着衰退。25年前,俄亥俄州有100多万人在工厂工作。而现在,这一数字已经降到70万以下。 金融危机中,通用汽车在2008年的圣诞节前夕关闭了莫瑞恩工厂。大约有1000名工人在那天失业,他们曾经工作过的庞大而低矮的厂房则在黑暗中荒废了数年。 ▲中国对美出口额(单位:百万美元) “当它空荡荡的时候,的确看起来很消沉。”莫瑞恩市长Elaine Allison说。“这个庞然大物突然空了,相比之下过去它是那么充实。” 金融危机中,经济衰退造成的破坏放大了当地许多选民的焦虑,他们在全球经济大潮中已经掉队太久。在本次总统竞选周期中,他们的失望情绪又助长了他们对政治的不满。本月在俄亥俄州参加竞选活动期间,民主党候选人希拉里·克林顿(Hillary Clinton)指责中国向美国市场倾销钢铁。 特朗普的言论则更为尖锐。“他们偷走了我们的工作,他们偷走了我们的企业,他们在抢我们的钱,”上周他这样告诉俄亥俄州自己的支持者们。“而我们只剩下毒品,债务,还有空空荡荡的工厂。” 但俄亥俄州的实际情况要更为复杂。包括特朗普在总统预选中的对手约翰·凯西克(John Kasich,共和党)州长在内的州政府官员,向福耀承诺提供超过1千万美元的拨款和奖励,成为有记录以来最高水平的激励措施之一。而作为回报,俄亥俄州的经济获得一笔2.8亿美元的“横财”。 自从2014年宣布建厂规划以来,福耀雇用的员工人数比计划提高了3倍。一家玻璃回收公司即将迁入附近新建的大楼。亚洲餐馆CJ Chan’在福耀工厂附近开设了一家分店,因为餐已经察觉到福耀雇员--包括曹德旺将带来的可观生意。 “我开始意识到我们肩上的责任非常重大,”曹德旺在自传中这样写到。“我们所犯的任何错误都会给我本人,福耀集团乃至全体中国人抹黑。” 二 一切为了下一轮增长 在中国,福耀可以让工厂在开工后一年内实现满负荷运转。莫瑞恩工厂的建设则是2014年开始的。 “我应该感到知足了,”曹德旺说道。“不过与我在中国开的工厂相比仍有很大差距。” 最大的两个挑战是招聘和发薪水。福耀已经雇用了2000名员工,并且正计划再招几百人。而该地区的失业率仅为4.4%,低于全国水平,这导致可供雇用的总人数非常少。历年来下岗的工人有许多去了其他地方,也有许多人已经退休。 此外,莫瑞恩在衰退后也渐渐开始重建,引入了制造业之外的产业--交通、卫生保健甚至科技等其他行业。这导致企业间争夺工人的竞争加剧。 对福耀来说,这意味着最重要的是要维持现有的员工队伍,同时提高他们的产能。工厂尚未成立工会,而工人的起薪为一小时约12美元。工厂最近一次中国最高管理者和美国副官举行的会议中,因为不能及时把公司奖金调整得更吸引员工,曹德旺变得有些失望。 ▲福耀工厂,一名工人拿着一块玻璃 “是因为你们对我没有信心,还是你们不尊重我?”曹德旺这样问管理层。“我们需要看到行动。行动是解决问题最简单的对策。” 中国的事情也在发生改变。其经济在多年的两位数增长后,增速正在迅速放缓。全世界已经充斥着中国商品,对中国产品的需求已经大大减少。上个月,中国出口额较上一年同期下降了10%。工资水平的提高以及中产阶级的壮大,意味着企业不能再依靠廉价劳动力来填满工厂。 为了给下一轮增长提供更多动力,福耀以及其他中国企业不得不把目光投向国外。据经济合作与发展组织统计,中国的对外直接投资从2005年的137亿美元激增至2015年的1878亿美元,增长了1294%。荣鼎资讯预计,今年上半年中国对美直接投资将达创纪录的180亿美元。 […]

龙生   15 May 2017
View Details

仿冒IP与伪造referer

伪造IP与伪造referer 在http协议中伪造ip的可能性研究 些日子对自定义http协议的各个数据进行了研究,对于ip伪造的问题,我当时给的建议是使用代理服务器,不过后来发现,其实可以在http协议加入一个选项,来实现一个非伪造ip的伪造ip 。如何理解呢?理由如下:~ 一、方法概述 在http协议数据头里面加入选项“x-forward-for”,例如:“x-forward-for:202.204.76.254”,这样发送出去 的包,就是一个特殊的包,在收包方看来,这个包的意思是,一个代理服务器发过来的数据包,而这个包的真是ip是“202.204.76.254”,其实还 是实现的是三次握手,但是只不过是在发包的同时,对收包方提到了一个第三者。 二、试用范围 因为现在的网站类的程序如果有IP限制的话,基本上都是会检测是不是代理服务器发送的数据的,如果是代理服务器发送的数据,那么他就把IP记为这个(透明)代理服务器发送的x-forward-for的IP。 以一段较为流行的php检测ip的代码为例: 那么大家可以看到这个IP是如何伪造的了。 三、应对方法 当然对于网站方面,这种伪造ip的情况虽然不是很多,但是如果在投票类的程序中,当然很需要这方面的检测了,呵呵。多多检测HTTP_CLIENT_IP吧。貌似这个还没有办法伪造? .. 四、总体看法 这个办法之所以称之为非伪造ip的伪造ip,主要就是利用了现在大多数网站程序检测ip的一个漏洞。所以如果网站程序能够重新审视一下自己的ip检测办法,这个方法就会慢慢失效的。呵呵。 – 伪造 referer 首先说明,伪造访问来路不是什么光明正大的事情,目的就是为了欺骗服务器。原本以为给 XMLHTTP 对象增加一个 Referer 的header 就可以,结果却没有任何作用,改用 ServerXMLHTTP 也如此。 无意间发现公司内部项目使用的 paypal 扣款程序里面有 WinHttp.WinHttpRequest.5.1 对象,它负责把客户的信用卡信息提交到 paypal 的服务器,看来是一个核心的远程访问方法,google一下发现它居然用可以成功伪造所有 http 请求的 header 信息!下面的代码通过伪造 referer 的值,假装从百度首页提交一个表单到指定的 url 去: var url = http://www.yourtarget.com ; var param = name=david&age=30 ; var obj = new ActiveXObject( WinHttp.WinHttpRequest.5.1 ); obj.Open( POST , url, false); obj.Option(4) = 13056; obj.Option(6) = false; //false可以不自动跳转,截取服务端返回的302状态。 obj.setRequestHeader( Content-Type , application/x-www-form-urlencoded ); obj.setRequestHeader( Referer , http://www.baidu.com ); obj.Send(param); WScript.Echo(obj.responseText); 保存为 xxx.js 文件,在命令行中运行 cscript.exe […]

龙生   15 May 2017
View Details

nginx查看配置文件nginx.conf路径

当你执行 nginx -t 得时候,nginx会去测试你得配置文件得语法,并告诉你配置文件是否写得正确,同时也告诉了你配置文件得路径: # nginx -t nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful 首先执行命令找到nginx路径 ps aux | grep nginx 如nginx路径为 /usr/local/nginx/sbin/nginx 然后执行以下命令 /usr/local/nginx/sbin/nginx -V 默认放在 安装目录下 conf/nginx.conf from:http://linux.it.net.cn/e/server/nginx/2014/0718/3177.html

龙生   15 May 2017
View Details

RijndaelManaged类

构造函数 名称 说明 System_CAPS_pubmethod RijndaelManaged() 初始化 RijndaelManaged 类的新实例。 属性 名称 说明 System_CAPS_pubproperty BlockSize 获取或设置加密操作的块大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty FeedbackSize 获取或设置加密操作的反馈大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty IV 获取或设置对称算法的初始化向量 (IV)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Key 获取或设置对称算法的密钥。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty KeySize 获取或设置对称算法所用密钥的大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty LegalBlockSizes 获取对称算法支持的块大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty LegalKeySizes 获取对称算法支持的密钥大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Mode 获取或设置对称算法的运算模式。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Padding 获取或设置对称算法中使用的填充模式。(继承自 SymmetricAlgorithm。) 方法 名称 说明 System_CAPS_pubmethod Clear() 释放 SymmetricAlgorithm 类使用的所有资源。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateDecryptor() 用当前的 Key 属性和初始化向量 (IV) 创建对称解密器对象。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateDecryptor(Byte[], Byte[]) 创建对称 Rijndael 解密器对象具有指定 Key 和初始化向量 (IV)。(覆盖SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])。) System_CAPS_pubmethod CreateEncryptor() 用当前的 Key 属性和初始化向量 (IV) 创建对称加密器对象。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateEncryptor(Byte[], Byte[]) 创建对称 Rijndael 加密器对象具有指定 Key 和初始化向量 […]

龙生   15 May 2017
View Details

nginx优化缓冲缓存

反向代理的一个问题是代理大量用户时会增加服务器进程的性能冲击影响。在大多数情况下,可以很大程度上能通过利用Nginx的缓冲和缓存功能减轻。 当代理到另一台服务器,两个不同的连接速度会影响客户的体验: 从客户机到Nginx代理的连接。 从Nginx代理到后端服务器的连接。 Nginx具有优化这些连接调整其行为的能力。 如果没有缓冲,数据从代理的服务器发送并立即开始被发送到客户。如果假定客户端很快,缓冲可以关闭而尽快使数据到客户端,有了缓冲,Nginx代理将暂时存储后端的响应,然后按需供给数据给客户端。如果客户端是缓慢的,允许Nginx服务器关闭到后端的连接。然后,它可以处理数据分配到客户端,以任何可能的速度。 Nginx默认有缓冲设计,因为客户端往往有很大的不同的连接速度。我们可以用以下指令调节缓冲行为。可以在HTTP,server或location位置来设置。重要的是要记住,大小size指令是针对每个请求配置的,所以增加超出你需求会影响你的性能,如果这时有许多客户端请求: proxy_buffering:该指令控制缓冲是否启用。默认情况下,它的值是“on”。 proxy_buffers:该指令控制代理响应缓冲区的数量(第一个参数)和大小(第二个参数)。默认配置是8个缓冲区大小等于一个内存页(4K或者8K)。增加缓冲区的数目可以让你缓冲更多信息。 proxy_buffer_size:从后端服务器的响应头缓冲区大小,它包含headers,和其他部分响应是分开的。该指令设置响应部分的缓冲区大小。默认情况下,它和proxy_buffers是相同的尺寸,但因为这是用于头信息,这通常可以设置为一个较低的值。 proxy_busy_buffers_size:此指令设置标注“client-ready”缓冲区的最大尺寸。而客户端可以一次读取来自一个缓冲区的数据,缓冲被放置在队列中,批量发送到客户端。此指令控制允许是在这种状态下的缓冲空间的大小。 proxy_max_temp_file_size:这是每个请求能用磁盘上临时文件最大大小。这些当上游响应太大不能装配到缓冲区时被创建。 proxy_temp_file_write_size:这是当被代理服务器的响应过大时Nginx一次性写入临时文件的数据量。 proxy_temp_path:当上游服务器的响应过大不能存储到配置的缓冲区域时,Nginx存储临时文件硬盘路径。 正如你所看到的,Nginx提供了相当多的不同的指令来调整缓冲行为。大多数时候,你不必担心太多,但它对于调整一些值可能是有用的。可能最有用的调整是proxy_buffers和proxy_buffer_size指令。 一个例子:、 proxy_busy_buffers_size 8k; proxy_max_temp_file_size 2048m; proxy_temp_file_write_size 32k; proxy_pass http://example.com; 配置代理服务缓存来减少响应时间 尽管缓冲可以帮助释放后端服务器以处理更多的请求,Nginx还提供了一种方法来缓存从后端服务器的内容,对于许多请求无需连接到上游。 配置代理缓存 要设置缓存用于代理内容,我们可以使用proxy_cache_path指令。这将创建区域保存来自被代理服务器返回的数据。该proxy_cache_path指令必须在HTTP上下文部分进行设置。 在下面的例子中,我们将配置一些相关的指令来建立我们的缓存系统。 # http context proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max_size=50m; proxy_cache_key $scheme$request_method$host$request_uri$is_args$args ; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 用proxy_cache_path指令,我们首先应该已经定义在文件系统中希望存储缓存的目录。在这个例子中,我们选择在/var/lib/nginx/cache目录。如果该目录不存在,你可以用正确的权限和所有权创建它: sudo mkdir -p /var/lib/nginx/cache sudo chown www-data /var/lib/nginx/cache sudo chmod 700 /var/lib/nginx/cache levels=参数指定缓存将如何组织。 Nginx将通过散列键(下方配置)的值来创建一个缓存键。我们选择了上述的levels决定了单个字符目录(这是散列值的最后一个字符)配有两个字符的子目录(下两个字符取自散列值的末尾)将被创建。你通常不必对这个细节关注,但它可以帮助Nginx快速找到相关的值。 keys_zone=参数定义缓存区域的名字,我们称之为backcache。这也是我们定义多少元数据存储的地方。在这个例子里,我们是存储8 MB的key。对于每兆字节,Nginx可存储8000左右的条目。MAX_SIZE参数设置实际缓存数据的最大尺寸。 我们使用上面的另一个指令是proxy_cache_key。这个设置将设置用于存储缓存值的键。此键用于检查是否一个请求可以从高速缓存提供服务。我们将它设置成方案(http或https),HTTP请求方法,以及被请求的主机和URI的组合。 proxy_cache_valid指令可以被指定多次。它依赖于状态代码值使我们能够配置多长时间存储。在我们的例子中,我们对于后端返回200和302存储10分钟,404响应的一分钟过期。 现在,我们已经配置了缓存区,但我们仍然需要告诉Nginx什么时候使用缓存。 在我们代理到后端的location位置,我们可以配置使用这个缓存: # server context location /proxy-me { proxy_cache backcache; proxy_cache_bypass $http_cache_control; add_header X-Proxy-Cache $upstream_cache_status; proxy_pass http://backend; } 使用proxy_cache指令,就可以指定该backcache缓存区被用于这个位置。 Nginx会在这里检查传递给后端有效的条目。 上述proxy_cache_bypass指令被设置为$ http_cache_control变量。这将包含一个指示器,用以指示该客户端是否被明确地请求一个最新的,非缓存版本。设置此指令允许Nginx正确处理这些类型的客户端请求。无需进行进一步的配置。 […]

龙生   15 May 2017
View Details