月度归档:2015年09月

ubuntu编译nginx

安装 pcre
sudo apt-get install build-essential

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz

./configure
make
sudo make install
sudo apt-get install libtool

sudo apt-get install libssl-dev
sudo /usr/local/nginx/sbin/nginx

ubuntu 上安装 shadowsocks server

apt-get install python-gevent python-pip

pip install shadowsocks
安装shadowsocks了。
接下来配置也比较简单,找到shadowsocks文件夹: sudo find / -name shadows*
新建一个 config.json,或者其他名字的都行,位置可以放在/etc/shadowsocks/下(默认没有这个文件,你要自己创建一个),或者home或者其他地方。

内容是

{
“server”:”my_server_ip”,
“server_port”:8388,
“local_port”:1080,
“password”:”barfoo!”,
“timeout”:600,
“method”:”aes-256-cfb”
}
具体含义wiki上给的也很清楚

server 服务器 IP (IPv4/IPv6),注意这也将是服务端监听的 IP 地址
server_port 服务器端口
local_port 本地端端口
password 用来加密的密码
timeout 超时时间(秒)
method 加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4”, 等等。默认是一种不安全的加密,推荐用 “aes-256-cfb”

apt-get install python-m2crypto
然后就可以启动服务了。

ssserver -c /etc/shadowsocks/config.json
当然了,你不可能一直开着ssh,所以还是

nohup ssserver -c /etc/shadowsocks/config.json &
然后可以关了SSH。
或者更直接的开机自启动,添加到rc.local

Top命令监控某个进程的资源占有情况

Top命令监控某个进程的资源占有情况

下面是各种内存:

VIRT:virtual memory usage

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory

1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA

1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。

Ajax跨域CORS

CORS 跨域资源共享(Cross-Origin Resource Sharing)

function createCORSRequest(method, url) {
  var xhr = new XMLHttpRequest();
  if ("withCredentials" in xhr) {
    // 此时即支持CORS的情况
    // 检查XMLHttpRequest对象是否有“withCredentials”属性
    // “withCredentials”仅存在于XMLHTTPRequest2对象里
    xhr.open(method, url, true);
 
  } else if (typeof!= "undefined") {
 
    // 否则检查是否支持XDomainRequest,IE8和IE9支持
    // XDomainRequest仅存在于IE中,是IE用于支持CORS请求的方式
    xhr = new XDomainRequest();
    xhr.open(method, url);
 
  } else {
 
    // 否则,浏览器不支持CORS
    xhr = null;
 
  }
  return xhr;
}
 
var xhr = createCORSRequest('GET', url);
if (!xhr) {
  throw new Error('CORS not supported');
}

服务器端

<?php  
 header("Access-Control-Allow-Origin:*");