CentOS使用rsync搭建镜像服务器

安装配置Web服务

1
2
3
4
5
6
7
8
9
10
11
12
13
$ yum install httpd
$ mkdir /home/_mirrors
$ chmod -R 755 /home/_mirrors
$ ln -s /home/_mirrors /var/www/mirrors
$ vi /etc/httpd/conf/httpd.conf
Alias /mirrors "/var/www/mirrors"
<Directory "/var/www/mirrors">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
$ systemctl restart httpd.service

阅读全文

async/await与forEach

首先使用forEach在Javascript里遍历一个数组,先上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const returnNum = x => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(x);
}, 500);
});
};

const example = async () => {
const nums = [1,2,3];
nums.forEach(async num => {
const result = await returnNum(num);
console.log(result);
});
console.log('after forEach');
};

example().then(() =>{
console.log('done');
});

阅读全文

Erlang极简学习笔记<05>——递归篇

  • 函数式编程语言中通常没有类似forwhile这样的循环结构

  • 递归的定义就是:调用自己的函数。不过仅仅让函数调用自己还不够,我们还需要一个终止条件,又称为基本情形(base case)

阅读全文

使用Charles进行HTTPS抓包

https://www.charlesproxy.com

iPhone抓包

    阅读全文

    Debian下Apache不修改配置文件支持多站点

    假定现在有 2 个域名,分别是 xxx.com 与 yyy.com,对应本地目录是 /var/www/xxx/ 与 /var/www/yyy/。

    接下来我们创建 2 个有效站点的配置文件。

    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
    $ vi /etc/apache2/sites-available/xxx.com
    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName xxx.com
    ServerAlias www.xxx.com
    CustomLog /var/log/apache2/xxx.com-access.log combined
    DocumentRoot /var/www/xxx/

    <Directory /var/www/xxx/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
    </Directory>
    </VirtualHost>

    $ vi /etc/apache2/sites-available/yyy.com
    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName yyy.com
    ServerAlias www.yyy.com
    CustomLog /var/log/apache2/yyy.com-access.log combined
    DocumentRoot /var/www/yyy/

    <Directory /var/www/yyy/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
    </Directory>
    </VirtualHost>

    阅读全文

    Debian下Apache安装使用mod_wsgi

    mod_wsgi 的速度比 mod_python 更快,也更容易使用,而且 mod_python 也停止维护了。把服务器上的 python 脚本改用 mod_wsgi 运行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ aptitude install libapache2-mod-wsgi
    $ mkdir /var/www/py
    $ chmod 777 /var/www/py
    $ vi /etc/apache2/sites-available/default
    WSGIScriptAlias /hello /var/www/py/hello.wsgi

    <Directory "/var/www/py">
    Order allow,deny
    Allow from all
    </Directory>
    $ /etc/init.d/apache2 restart

    阅读全文

    Debian安装Apache2+PHP5+MySQL

    安装 apache2 mysql php5

    1
    2
    3
    4
    5
    6
    7
    8
    $ aptitude install apache2
    $ aptitude install mysql-server
    $ aptitude install php5 libapache2-mod-php5
    $ aptitude install php5-gd php5-cgi php5-curl php5-dev php5-idn
    $ aptitude install php-pear php5-imagick php5-imap php5-mcrypt
    $ aptitude install php5-memcache php5-ps php5-pspell php5-recode
    $ aptitude install php5-snmp php5-sqlite php5-tidy php5-xmlrpc
    $ aptitude install php5-xsl php5-common php5-mysql php5-json

    阅读全文

    Erlang极简学习笔记<04>——类型篇

    • Erlang是动态类型语言。所有错误都在运行时被捕获,在编译代码时,对于可能导致失败的问题,编译器并不总会给出警告

    • 绝大多数语言和类型系统都旨在写出没有错误的程序,但是Erlang却认为错误肯定会发生

    阅读全文

    Gunicorn运行Flask程序

    安装Gunicorn

    1
    $ pip install gunicorn

    阅读全文

    MySQL性能测试

    mysqlslap测试

    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
    $ mysqlslap [options]
    --auto-generate-sql, -a
    自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。
    --auto-generate-sql-load-type=type
    测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。
    --auto-generate-sql-add-auto-increment
    代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。
    --number-char-cols=N, -x N
    自动生成的测试表中包含多少个字符类型的列,默认1
    --number-int-cols=N, -y N
    自动生成的测试表中包含多少个数字类型的列,默认1
    --number-of-queries=N
    总的测试查询次数(并发客户数×每客户查询次数)
    --query=name, -q
    使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
    --create-schema
    代表自定义的测试库名称,测试的schema,MySQL中schema也就是database。
    --commint=N
    多少条DML后提交一次。
    --compress, -C
    如果服务器和客户端支持都压缩,则压缩信息传递。
    --concurrency=N, -c N
    表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符。例如:--concurrency=100,200,500。
    --engine=engine_name, -e engine_name
    代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb。
    --iterations=N, -i N
    测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。
    --only-print
    只打印测试语句而不实际执行。
    --detach=N
    执行N条语句后断开重连。
    --debug-info, -T
    打印内存和CPU的相关信息。

    阅读全文