分类 Linux 下的文章

CentOS 下 Pure-FTPd 的安装配置

Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。它侧重于运行效率和易用性,满了大众化的需求,包括普通用户以及主机供应商们。
下面是一次普通安装及配置的过程。
一、下载Pure-FTPd源码
ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.46.tar.gz

二、上传到服务器,解压
tar zxvf pure-ftpd-1.0.46.tar.gz

三、编译安装

cd pure-ftpd-1.0.46

./configure \
--prefix=/usr/local/pureftpd \
--with-language=simplified-chinese \
--with-everything

make  && make install

执行以上命令,安装完成。配置文件所在目录 /usr/local/pureftpd/etc

- 阅读剩余部分 -

Nginx 反向代理配置多个域名指向不同IP(端口)

如下是服务器部署:

  • 代理服务器 A,安装Nginx
  • web服务器 B 和 C,安装Apache

现在需要配置 nginx.conf 把 b.test.cn 指向 B 服务器,c.test.cn 指向 C 服务器。
nginx.conf关键配置:

...
upstream b_server {
    ip_hash;  
    server 192.168.0.1 weight=1 max_fails=8 fail_timeout=30s;     
}

upstream c_server {
    ip_hash;  
    server 192.168.0.2 weight=1 max_fails=8 fail_timeout=30s;     
}
...

server {
listen       80;
server_name  b.test.cn;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Ip $remote_addr;

        proxy_pass http://b_server;
   }
}

server {
listen       80;
server_name  c.test.cn;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-Ip $remote_addr;

        proxy_pass http://c_server;
   }
}

如上配置,即可实现不同域名反向代理指向不同IP(端口)。

记一次网站迁移

背景:公司的部分业务是网站建设,现由于公司业务调整,需要将公司部署在电信IDC机房的四千多个网站迁移至百度云。

迁移开始之前,考虑了几个难点:
1、网站数据较大(150G左右),通过公网传输需要耗费很长时间,但其间不能影响网站正常访问;
2、每个站点都配有FTP账号,迁移后要保证原来的账号仍然可用;
3、所有站点都配有二级域名,当初做的是泛域名解析。

第三个难点相对容易解决,只需要调整一下Apache的匹配规则,然后起用全新的泛域名指向即可。

为了保证第二点中提到的FTP可用,第一点中转移数据的时候,不仅要保证数据完整,而且文件、目录的属性也要和老服务器一致。所以,开始转移数据之前,要在新服务器添加所有对应的用户。补充一点,我们用的是SFTP,所以所有账号都是Linux的一个用户,名称和站点目录一致。

所以迁移步骤大致如下:
1、利用Python脚本生成SFTP用户及对应密码,保存到文本文件,每个账号占一行,后面紧跟一个空格加密码;在新服务器中读取该文本文件,并批量添加用户。之所以可以用这种方法,是由于最开始的SFTP账号是根据站点目录名生成的,所以通过脚本比较方便处理。
2、用Rsync同步数据,配置文件中 use chroot = no 来保证所有文件的所属用户和组都正确,另外 -a 参数保证文件读写权限与旧服务器一致。
3、mysqldump方法导出数据库,同样通过rsync同步到新服务器,导入。我们的结构是一个站点一个数据库,所以虽然数据库数量多,但都很小,毕竟都是企业站居多。导入的方法是:python脚本批量解压.gz的数据库文件,然后把需要导入的库写进一个文件source.sql,该文件的内容格式如下:

source xxx.sql;
source xxx2.sql;
...

至此,网站迁移基本完成。

Linux下top命令:CPU信息

第二行开始

Tasks
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数

第三行开始

%us 用户空间占用CPU百分比
%sy 内核空间占用CPU百分比
%ni 用户进程空间内改变过优先级的进程占用CPU百分比
%id 空闲CPU百分比
%wa 等待输入输出的CPU时间百分比
%hi 硬中断
%si 软中断

- 阅读剩余部分 -