yum安装Nginx

之前的Nginx的YUM源不能用了,本想着去Nginx官方网站去手工安装一下,但是发现nginx的官方也提供源的维护了。

Pre-Built Linux Packages for Stable

To enable automatic updates of Linux packages set up the yum repository for the RHEL/CentOS distributions, or the apt repository for the Debian/Ubuntu distributions.

To set up the yum repository for RHEL/CentOS, choose the corresponding nginx-release package from the list:

This package contains yum configuration file and a public PGP key necessary to authenticate signed RPMs. Download and install it, then run the following:

yum install nginx

Alternatively, a repository configuration can be added manually without installing the nginx-release package. Create the file named/etc/yum.repos.d/nginx.repo with the following contents:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “5” or “6”, for 5.x or 6.x versions, respectively.

For Debian/Ubuntu, in order to authenticate the nginx repository signature and to eliminate warnings about missing gpg key during installation of the nginx package, it is necessary to add the key used to sign the nginx packages and repository to the aptprogram keyring. Please download this key from our web site, and add it to the apt program keyring with the following command:

sudo apt-key add nginx_signing.key

 

For Debian 6 append the following to the end of the /etc/apt/sources.list file:

deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx

 

For Ubuntu 10.04 append the following to the end of the /etc/apt/sources.list file:

deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx

 

For Debian/Ubuntu then run the following commands:

apt-get update
apt-get install nginx

如此一来方便很多,因为我是centos5系统,所以还是

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
yum -y install nginx

Linux 用户密码只验证前8位

今天检查了一下自己的服务器,发现有个相当无解的隐患,那就是root密码只需要输入前八位便可以登录了……

虽然说8位从一定程度上就够用了,但是这也太悲催了吧。

我们要想增加密码强度,那么就需要修改一下加密方式了,

首先查看你的方式

more /etc/pam.d/system-auth

 

我们可以看到 password的加密方式为md5 ,如果不是md5或者sha512的加密需要注意了,自己验证一下是不是只需要输入前八位即可:)

使用命令

authconfig --passalgo=sha512 --update

或者

authconfig --passalgo=md5 --update

然后使用 passwd 修改你的密码。

互联网产品:死于方向,毁于节奏

与传统行业相比,互联网是一个节奏变化较快的行业。进入互联网这些年,成功的经历没怎么碰到过,不过失败的,死得轰轰烈烈的案例不仅看到过,而且还真真切切的经历过。说起来,的确象马云同志说的那样,成功的方法千千万万,而失败的原因就那么几个。见过的这些死掉的项目,主要的原因在于:毁于方向,死于节奏!

死于方向
首先,来说说方向。俗话说男怕入才行,女怕嫁错郎,搞互联网方向太重要,要是挑错了方向,而中途灵活度又不够,不能即时调整的话,只会死得很难看。
比如这几天,看到毕胜发的牢骚,对于搞B2C,总觉得是自己入错了行。不过,对于方向这个问题,需要加以区分。某些方向,对于一些人来讲是对的,但是对于另外一些人来讲,可能就不对,因为大家进入的时机不同,所掌握的资源不一样,结果也将大不同。就B2C这个事情,对于毕胜来讲,可能是错的,但是对于刘强东来讲,就是对的。
1、团购的泡沫
首先说一个大家都比较熟悉的,团购。团购最近是出尽了风头,但是对于大多数人来讲,这可能是永远也得不到结果的一个行业。就象团购刚刚进入中国的时候,我在《深入解读Groupon新型团购》讲的一样,单纯的团购平台将很难有竞争力,因为平台对于消费者及商家都缺乏粘性,不过却是一种很好的交叉补贴手段。当时就建议对于大众点评网等,不宜通过此模式直接获利,更好的策略是对此业务进行补贴,让消费者及商家的利益最大化,从而增强平台的粘性,最终可通过其它方式获利。
最终的结果是,淘宝的聚划算成了最大的团购平台,身边有些朋友以前是不上淘宝的,自从有了个聚划算之后,上淘宝的积极性大大的提升了,上聚划算多了,在淘宝上买其它的东西也就多了起来。而另外一些独立的团购平台,以后会怎样,对于大多数人来讲,几乎只能是等死而已!
2、B2B领域的炮灰
说完团购,再来说说B2B。一直以来都在B2B这个圈子里呆着,对这个行业最为熟悉。看到太多的公司犯错。方向选错了,想要赚钱,比登天还难。
比如,在这个领域,国内有好几家做内贸的综合性平台,在Google全球流量排名前1000的网站列表中,http://www.google.com/adplanner/static/top1000/,有个叫马可XX的网站,全球排名竟然能进入到528名,每天的流量曾经应该是接近过100万IP左右。按一般人的想法,网站肯定赚钱了吧,实际上呢,我估计日子应该还是过得苦哈哈的。
实际上,搞综合性的网站,真的是不容易:1)品牌不容易起来,前面还除了有个强悍的阿里,还有个千年老二的慧聪,互联网行业就是个老大吃肉,老二喝汤,老三老四喝西北风的行业;2)流量看上去是高,不过分到下面每家企业,真不剩几个,你凭什么叫企业付钱?3)流量不稳定,很容易被百度干掉。当你看到流量一天比一天高,把销售团队建起来之后,正乐着呢。这不就前一段时间,发现一下子被百度干掉了(前段时间被同时干掉的还有好几个类似的网站,比如一乎XX),网站流量一落千丈,哭都来不及。
其实除了马可XX这种综合性的平台之外,还见到过很多做行业平台的,挑选的行业真的是五花八门,什么都有,但实际上,适合B2B的行业还真的不是那么多,行业选错了,要想赚钱,真的很难。
3、小额外贸B2B的亲身经历
再举个亲身经历的例子,先前所在的公司曾经做过一个类似DH的小额外贸B2B的网站(只参与前期调研,没有实际运营)。这个行业的问题主要在那里呢,至少从我的理解来看,这个东西是个四不象,目标用户群定位很不清楚。
这个东西也有点象阿里巴巴搞的那个无名良品一样,想法很好,要把工厂最优质的产品卖给消费者,不过实际去执行的时候,你就会发现,绝大部分的工厂是没有那个能力的,不善长搞营销,搞服务,术业有专攻,他们的优势还是在于生产而已。
这个行业也类似,想像中理想状态应该是工厂把东西直接批发给老外,但是做着做着发现,大部分的工厂根本就没有这种做零碎小单的能力,最后发现卖东西的还是哪些小打小闹的,还很多打擦边球的,卖假货的。
反正这里面的问题多多,支付的问题,假货的问题,纠纷的问题,一大堆。最后回过头来看看这个模式,本来是想找到B2B与C2C中间的一个缺口,但是实际上走下来你会发现,这个搞大宗贸易干不过Ali,搞零售呢又搞不过eBay。最终的结果,关门大吉而已(提前关门不见得是件坏事情)。不过还好,这个项目没浪费多少钱。
毁于节奏
除了方向之外,在互联网行业,节奏则是另外一个很难把握的难点。对于节奏这个事情,这一拿一放,还真是不好掌握,没几个人能拿捏的好。
1、以做个小网站为例
节奏这个问题,往小了说,你就比如搞一个网站,里面有很多的功能要开发,而你BOSS还时不时的提出些想法,下面也会有很多奇思妙想,而你手头的资源又是有限的,这时候怎么办?难道都让兄弟们去做,发现一个BUG就叫去马上改?如果是这样的话,事情只会是越来越糟。想把事情做好,就必须得抗住、管住,来源于上面、下面及你自己的需求,让项目有节奏的进行,学会和BUG和平共处。
2、上亿RMB的教训
还是曾呆过的一家公司吧,搞B2B(外贸的),花了应该是两三个亿(RMB),前前后后折腾了好几年时间,结果呢,屁都没有放一个。用公司老头子自己的话说,buyer长啥样,咱老外的胡子都没摸着。
现在终于想明白了,这事儿就靠SEO啊,Ali(外贸部分)那么牛X,不过他也是60%的流量直接来源于搜索引擎,剩下的那40%中又有70%是通过SEO渠道过来之后留下来的,也就是差不多90%的买家都和SEO有关。搞定了SEO,这个事情也就成了。
不过当时咱不懂啊,所以在不该投入的时候投入,在不该收获的时候收获。刚刚开始的时候就大搞展会,大规模的建设销售团队,花钱如流水;网站没有流量,没有效果,想要卖钱,自然是很难。最后的结果,可想而知。
后来,终于搞清楚了,却发现“钱快没了”。
3、来个开放面题,来说说京东 
说了这么多不成功的,下面来个开放点的面题,拿一个实际的案例来讨论,比如我们来说说京东,如果你是京东,你将如何掌握以下要点的节奏?
1)都知道物流是京东最具竞争力的地方,那么京东在物流方面总体节奏把握上都有哪些地方可圈可点,下一步该怎样,为什么?
2)都知道“开发平台”是今后的发展方向,亚马逊在“开放平台”方面做的极为出色,京东在“开放平台上”走的是开了还是慢了,下一步该怎样,为什么?
3)京东想做中国的亚马逊,似乎技术差了太多,服务器还老挂啊啥的。如果是你,在技术方面都应该如何布局,为什么?
小结
上面说了这么多,发了发牢骚。其实是比较感慨,作为一个互联网的从业者,尤其是leader,一定要能掌握好方向,拿捏好节奏。要不然,下面一大群人都给着你白干了。

修改pptp默认端口号1723

我们在Linux下建立的pptpd端口号默认是1723,有时候这个端口并不是那么的好用,不是麽?
所以服务端修改端口号比较简单

修改 /etc/services 文件
查找 1723,然后将其修改为你想修改的数值,重启 pptpd即可.

可是客户端,也就是windows自带的VPN拨号该怎么连接了.方法就是也要修改,修改注册表

以管理员身份运行 regedit ,然后查找 如下字段 TcpPortNumber ,查找到了以后,用10进制编辑 该项的值,修改成核服务器端一样的端口号即可.
注册表的项值在 项[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}]
下面的一个文件夹中,使用搜索把

FTP上传脚本

1
2
3
4
5
6
7
8
9
10
11
#! /bin/bash
cd /home/log
filedat=client_uservisit_$(date -d last-hour +"%Y%m%d%H")_0000.dat
ftp -v -n -oPort=端口号 IP地址 << end
user 用户名 密码
cd client_data
put $filedat
bye
end
cd /home/log
mv $filedat ../cdrbak/

MyEclipse8.6 for spring 注册码

还在为了Myeclipse到期而烦恼吗?我们还在百度,google来做伸手党吗?

虽然破解不是什么体面的事情,但是总的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
 
public class MyEclipseKeyGen {
	private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";
 
	public String getSerial(String userId, String type) {
		NumberFormat nf = new DecimalFormat("000");
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.YEAR, 3);
		cal.add(Calendar.DAY_OF_YEAR, -1);
		String licenseNum = nf.format((int) (Math.random() * 1000));
		String expTime = new StringBuilder("-").append(
				new SimpleDateFormat("yyMMdd").format(cal.getTime())).append(
				"0").toString();
		String need = new StringBuilder(userId.substring(0, 1)).append("Y")
				.append(type).append("-100").append(licenseNum).append(expTime)
				.toString();
		String dx = new StringBuilder(need).append(LL).append(userId)
				.toString();
		int suf = this.decode(dx);
		String code = new StringBuilder(need).append(String.valueOf(suf))
				.toString();
		return this.change(code);
	}
 
	private int decode(String s) {
		int i;
		char[] ac;
		int j;
		int k;
		i = 0;
		ac = s.toCharArray();
		j = 0;
		k = ac.length;
		while (j < k) {
			i = (31 * i) + ac[j];
			j++;
		}
		return Math.abs(i);
	}
 
	private String change(String s) {
		byte[] abyte0;
		char[] ac;
		int i;
		int k;
		int j;
		abyte0 = s.getBytes();
		ac = new char[s.length()];
		i = 0;
		k = abyte0.length;
		while (i < k) {
			j = abyte0[i];
			if ((j >= 48) && (j < = 57)) {
				j = (((j - 48) + 5) % 10) + 48;
			} else if ((j >= 65) && (j < = 90)) {
				j = (((j - 65) + 13) % 26) + 65;
			} else if ((j >= 97) && (j < = 122)) {
				j = (((j - 97) + 13) % 26) + 97;
			}
			ac[i] = (char) j;
			i++;
		}
		return String.valueOf(ac);
	}
 
	public static void main(String[] args) {
		try {
			System.out.println("please input register name:");
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					System.in));
			String userId = null;
			userId = reader.readLine();
			if (userId == null || "".equals(userId)) {
				System.out.println("name is null");
				System.exit(0);
			}
			MyEclipseKeyGen myeclipsegen = new MyEclipseKeyGen();
			String res = myeclipsegen.getSerial(userId, "E3MS");
			System.out.println("Serial:" + res);
			reader.readLine();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
	}
}

Linux下的多线程下载

经常使用国外的服务器,使用wget下载资源很爽的,但是无奈今天要从国内的服务器拉资源,那么就有点怀念起来了迅雷

那么只好使用多线程下载了。Axel

32位CentOS
wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.i386.rpm
rpm -ivh axel-2.4-1.el5.rf.i386.rpm
64位CentOS
wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.x86_64.rpm
rpm -ivh axel-2.4-1.el5.rf.x86_64.rpm

或者去 http://down.72xit.com

axel 参数 文件下载地址
-n 指定线程数
-o 指定另存为目录
-s 指定每秒的最大比特数
-q 静默模式