Akawa

ETY001的博客

vpn安装神马的都弱爆了,在linux下,直接一条命令就用ssh翻墙了,对以前的无知感到羞愧呀。。。。
命令如下:

1
sudo ssh -qTfnN -D 7070 root@host

7070是在本地开的代理端口,root是vps的用户名,host是vps的地址。
命令执行后,输入完vps密码,再在系统里设置代理即可,IP填127.0.0.1,端口7070.

最近买了一个BurstNet的VPS来玩玩,的确是很给力的,性价比超高,关键是有两个公网IP,并且可以再装cpanel之类的面板,操作系统的可选择性也极高,centos5,centos5.5,centos6.2,ubuntu,fedora,gentoo等等,并且系统貌似都是经过精简过的,就像我安装的centos5,安装完居然只占13M内存,硬盘也是只花费了550M。

为了测试一下这款VPS是否能搭建VPN,我从网上搜索了很多资料,最终了解到,OpenVZ架构的VPS只能安装OpenVPN,并且还需要开启TUN支持和iptables_nat模块支持(这个其实可以换一个iptables语句的)。

我参考了以下两篇博文,http://wty.name/centos-install-openvpn/http://www.xiaozhou.net/ittech/linux-ittech/configure_openvpn_on_burstnet_vps-2010-03-28.htm

其中需要注意的两点,一个是第一篇博文中有一键安装包,那个shell脚本里的ip地址并没有获取到,导致生成的.ovpn文件中的remote的ip地址是空白,再一点就是shell里面涉及到iptables转发的问题,在第二篇博文的评论中有提到解决方案。这个问题在网上其实也是很多的,就是执行

iptables -t nat -A POSTROUTING -s 192.168.21.0/24 -o eth0 -j MASQUERADE

的时候,会出现如下错误提示,

iptables:Unknown error 4294967295

解决方法是,改为下面的语句去执行:

/sbin/iptables -t nat -A POSTROUTING -s 192.168.21.0/24 -j SNAT –to-source YourVpsIP

这个vps的vpn配置我算是折腾了两天了,不过现在终于是可以翻墙出去啦,吼吼~

.htaccess文件如果没有生效的话,那么很可能是你的虚拟机配置信息中的AllowOverride 配置项的参数是None(默认是None),把这个设置为All 即可。

下面是AllowOverride 指令的相关信息:

说明:确定允许存在于.[htaccess](http://www.jzxue.com/tag/htaccess/)文件中的指令类型

语法:AllowOverride All|None|directive-type[directive-type] …

服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。

阅读全文 »

捣鼓了好几个小时了,终于知道怎么配置DHCP自动获取IP了,还是得上ArchLinux的官方Wiki才是王道啊。。。

DHCP (自动获取) IP

在这种情况下,你需要安装 dhcpcd 包(绝大多数情况下都是默认安装好的)。这样编辑 /etc/rc.conf :

1
2
3
eth0="dhcp"
INTERFACES=(eth0)
ROUTES=(!gateway)

貌似2012年9月份那个包以后,启动dhcp的方法有变化,看这里:https://wiki.archlinux.org/index.php/Configuring_Network_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.90.AF.E5.8A.A8.E6.97.B6.E8.BF.90.E8.A1.8C_DHCP

刚才在看我的博客cnzz统计的时候,猛然间发现的这个隐患。

这个隐患是在人人网手机版页面,造成这个隐患的原因应该是方便手机用户能记忆登陆状态。

如果想触发这个漏洞,需要的条件比较多,但是一定会有上钩的。

介于现在还未和人人网说,所以暂且不公布,但是我想聪明的各位,应该能从我上面的叙述中猜出一二~

转载:http://hi.baidu.com/cpu686/blog/item/ad8caa0f05c652e1ab645709.html

于Nginx对高并发的优良性能,故配了个Nginx+php-fpm来跑在线代理程序,是按照张宴文章配的,刚配置好时运行正常,但运行一段时间 后,网站打开很慢,打开网站后,在输入框输入要访问的网站,也慢得不行。在网站打开慢时,在SSH终端上输入命令也慢,怀疑是机房网速问题,但在ssh上 输入

w3m www.example.com

这个打开也慢,基本可以排除机房的网速问题。

当打开网站慢时,把服务器重启后,就会快起来,后来发现,用

/usr/local/webserver/php/sbin/php-fpm restart

把fastcgi重启下也会快起来,最把它加入计划任务,每小时重启下,基本保证网站不会慢,但终究不是办法。

查看了nginx.log和php-fpm.log,根据里面的错误,找了以上转载的几篇文章,总算是把问题解决了,主要修改了两个地方
1、
问题:
发现/usr/local/webserver/php/etc/php-fpm.conf文件里定义的打开文件描述符的限制数量是
51200
但用 命令ulimit -n查看,发现只有1024

我已在/etc/rc.local里添加了
ulimit -SHn 51200

竟然没生效

解决:
vi /etc/security/limits.conf

文件最后加上
*        soft    nofile 51200
*        hard    nofile 51200

阅读全文 »

对象关系映射(ORM,Object/Relation Mapping)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化了的结构。 典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。

nginx rewrite 正则表达式匹配,其中:

  • ~ 为区分大小写匹配

  • ~* 为不区分大小写匹配

  • !~!~*分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配,其中:

  • -f和!-f用来判断是否存在文件

  • -d和!-d用来判断是否存在目录

  • -e和!-e用来判断是否存在文件或目录

  • -x和!-x用来判断文件是否可执行

flag标记有:

  • last 相当于Apache里的[L]标记,表示完成rewrite

  • break 终止匹配, 不再匹配后面的规则

  • redirect 返回302临时重定向 地址栏会显示跳转后的地址

  • permanent 返回301永久重定向 地址栏会显示跳转后的地址

一些可用的全局变量有,可以用做条件判断(待补全)

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
$args

$content_length

$content_type

$document_root

$document_uri

$host

$http_user_agent

$http_cookie

$limit_rate

$request_body_file

$request_method

$remote_addr

$remote_port

$remote_user

$request_filename

$request_uri

$query_string

$scheme

$server_protocol

$server_addr

$server_name

$server_port

$uri

多目录转成参数

1
2
3
4
5
abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2
if ($host ~* (.*)\.domain\.com) {
set $sub_name $1;
rewrite ^/sort\/(\d+)\/?$ /index.php?act=sort&cid=$sub_name&id=$1 last;
}

目录对换

1
2
/123456/xxxx -> /xxxx?id=123456
rewrite ^/(\d+)/(.+)/ /$2?id=$1 last;

例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

1
2
3
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /nginx-ie/$1 break;
}

目录自动加“/”

1
2
3
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}

禁止htaccess

1
2
3
location ~/\.ht {
deny all;
}

禁止多个目录

1
2
3
4
location ~ ^/(cron|templates)/ {
deny all;
break;
}

禁止以/data开头的文件
可以禁止/data/下多级目录下.log.txt等请求;

1
2
3
location ~ ^/data {
deny all;
}

禁止单个目录
不能禁止.log.txt能请求

1
2
3
location /searchword/cron/ {
deny all;
}

禁止单个文件

1
2
3
location ~ /data/sql/data.sql {
deny all;
}

给favicon.ico和robots.txt设置过期时间;
这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

1
2
3
4
5
6
7
8
9
10
11
location ~(favicon.ico) {
log_not_found off;
expires 99d;
break;
}

location ~(robots.txt) {
log_not_found off;
expires 7d;
break;
}

设定某个文件的过期时间;这里为600秒,并不记录访问日志

1
2
3
4
5
6
location ^~ /html/scripts/loadhead_1.js {
access_log off;
root /opt/lampp/htdocs/web;
expires 600;
break;
}

文件反盗链并设置过期时间
这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rewrite ^/ http://leech.onexin.com/leech.gif; #显示一张防盗链图片
access_log off;#不记录访问日志,减轻压力
expires 3d;#所有文件3天的浏览器缓存
location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {
valid_referers none blocked *.onexin.com *.onexin.net localhost 208.97.167.194;
if ($invalid_referer) {
rewrite ^/ http://leech.onexin.com/leech.gif;
return 412;
break;
}
access_log off;
root /opt/lampp/htdocs/web;
expires 3d;
break;
}

只充许固定ip访问网站,并加上密码

1
2
3
4
5
root /opt/htdocs/www;
allow 8.8.8.8;
deny all;
auth_basic “ONEXIN_ADMIN”;
auth_basic_user_file htpasswd;

将多级目录形式转成一个文件形式,增强seo效果

1
2
/job-123-456-789.html 指向/job/123/456/789.html
rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /job/$1/$2/jobshow_$3.html last;

将根目录下某个文件夹指向2级目录
如/shanghaijob/ 指向 /area/shanghai/
如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/

1
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

上面例子有个问题是访问/shanghai 时将不会匹配

1
2
rewrite ^/([0-9a-z]+)job$ /area/$1/ last;
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

这样/shanghai 也可以访问了,但页面中的相对链接无法使用,
如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。
那我加上自动跳转也是不行咯
(-d $request_filename)它有个条件是必需为真实目录,而我的rewrite不是的,所以没有效果

1
2
3
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}

知道原因后就好办了,让我手动跳转吧

1
2
rewrite ^/([0-9a-z]+)job$ /$1job/ permanent;
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last;

文件和目录不存在的时重定向:

1
2
3
if (!-e $request_filename) {
proxy_pass http://127.0.0.1;
}

域名跳转

1
2
3
4
5
6
7
8
9
10
server

{
listen 80;
server_name jump.onexin.com;
index index.html index.htm index.php;
root /opt/lampp/htdocs/www;
rewrite ^/ http://www.onexin.com/;
access_log off;
}

多域名转向

1
2
3
4
5
6
server_name www.onexin.com www.onexin.net;
index index.html index.htm index.php;
root /opt/lampp/htdocs;
if ($host ~ “onexin\.net”) {
rewrite ^(.*) http://www.onexin.com$1 permanent;
}

三级域名跳转

1
2
3
4
if ($http_host ~* “^(.*)\.i\.onexin\.com$”) {
rewrite ^(.*) http://top.onexin.com$1;
break;
}

域名镜向

1
2
3
4
5
6
7
8
9
server
{
listen 80;
server_name mirror.onexin.com;
index index.html index.htm index.php;
root /opt/lampp/htdocs/www;
rewrite ^/(.*) http://www.onexin.com/$1 last;
access_log off;
}

某个子目录作镜向

1
2
3
4
location ^~ /job {
rewrite ^.+ http://job.onexin.com/ last;
break;
}

转载请注明出处:http://www.onexin.net/nginx-rewrite-references/

看来,半个月还不足以使我的博客死彻底,昨天刚刚抱怨了,我的博客因为停站半月备案,导致百度收录只剩一条,Google PR消失,但是刚才我又查了一下,18号,也就是半个小时前的昨天,在我抱怨后的12个小时里,我的博客被百度新收录了一条,而现在的seo综合查询结果,又和我停站备案前的数据相同了,也就是说,原来的好几百百度收录外加PR值3都恢复回来了。具体是什么情况真的不是很清楚。初步推测是3000多的外链起作用了,该观点有待验证。

另外,我发现了一个免费cdn加速器,不过需要备案号。http://www.webluker.com/

还有,自从给评论加上验证码功能后,世界瞬间就安静啦,o(∩∩)o…哈哈

最后一个事,从这篇开始,要结束文章链接是数字的窘态,练习练习英文。不过这个变动的影响就是,如果不采取措施的话,以前被搜索引擎收录的文章将失效了。。。采取的措施就是使用rewrite了,在nginx的配置文件里加入

rewrite ^/archives/(\d+)\.html /\?p=$1 last;

这两天我才发现我这次备案自己的博客,停站半个月的损失是什么。最初以为也就是少了点百度收录而已,但是事实却是,我的百度收录现在仅剩一条了,并且最痛心的是Google的PR值没有了,我的pr值原来为3阿,这是多么不容易积攒起来的阿。。。唉,看来一切又要从头再来了,既然现在是假期了,每天就要坚持发发博文了。希望能尽快回升回去。

0%