分类目录归档:DevOps

linux下的帐户系统文件

linux系统中,用户和组的相关系统都保存在用户和组数据库文件中,主要有“/etc/passwd”、“/etc/shadow”、“/etc/group”和“/etc/gshadow”四个文件。

(1),用户帐号文件-passwd
/etc/passwd文件也称为密码文件,是于基本的用户数据库文件,它列出了所有有效用户的相关信息。passwd文件需要能够被所有用户访问。该文件内每个用户占一行,被分为7个字段:
(1) 用户名;
(2) 密码,采用加密形式;
(3) UID;
(4) GID;
(5) 帐号信息,也叫GECOS。
(6) 用户主目录;
(7) 登录shell。 继续阅读

varnish替换squid的原因

varnish替代squid的主要原因
生产环境中尝试使用varnish替代squid的主要原因:
1. squid不支持多核cpu, 生产环境中大多使用Dell R610系列,这种类型机器配置为2个4核双线程cpu, 操作系统识别为16个,对squid来说,只能利用到一个逻辑cpu, 其它15个逻辑cpu相当于一直浪费。 继续阅读

shm设备的一些用法

一、/dev/shm理论
   /dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建 ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢?

继续阅读

High-performance PHP

High-performance PHP on apache httpd 2.4.x using mod_proxy_fcgi and php-fpm.

With the release of apache httpd 2.4 upon an unsuspecting populace, we have gained some very neat functionality regarding apache and php: the ability to run PHP as a fastCGI process server, and address that fastCGI server directly from within apache, via a dedicated proxy module (mod_proxy_fcgi.)
继续阅读

mod_fastcgi与mod_fastcgid的一些认识

稍微整理我對於 mod_fastcgi / mod_fcgid / PHP-FPM 之間的理解。

1. Maintainer and License

mod_fastcgi 是 FastCGI.com 負責的項目,使用的是 FastCGI 授權條款。

mod_fcgid 是 Apache 基金會負責的項目,使用的是 Apache-2.0 授權條款。

因此,不僅主要負責單位不同,其授權方式也不同。 继续阅读

apache2.4的一些变化

apache httpd Either all Options must start with + or -, or no Option may.
apache httpd 2.2的配置放到apache httpd 2.4下就出现了这个错误,出现错误行的内容为:
Options -Indexes FollowSymLinks
出错提示:
Either all Options must start with + or -, or no Option may.
解决方法:
Options -Indexes +FollowSymLinks

apache2.4的403要如下处理:
<Directory />
AllowOverride none
#Require all denied
Require all granted
</Directory>

将Require all denied 改为 Require all granted

mysqldump备份压缩

mysqldump备份压缩
在使用mysql逻辑备份的时候,备份出来的逻辑sql文件特别大。所以需要使用压缩以减少空间使用,我们一般压缩有两种手段
但是两种不同的压缩工具,得到的结果大小是不一样的,我们推荐使用bzip2的压缩方式,压缩率更高。
1.gzip压缩
mysqldump < mysqldump options> | gzip > outputfile.sql.gz
2.gzip恢复
gunzip -v outputfile.sql.gz
或者一次性完成
gunzip < outputfile.sql.gz | mysql < mysql options>
3.bzip2压缩方式
mysqldump < mysqldump options> | bzip2 > outputfile.sql.bz2
4.bzip2恢复方式
bunzip2 < outputfile.sql.bz2 | mysql < mysql options>
但是,gzip压缩对象的时间比较短,bzip2压缩的时间和解压的时间大约是gzip的3倍长,压缩率是提升gzip的15%压缩率左右。
通俗一点就是bzip2比gzip的文件压缩小15%左右。

wdcp面板的一些工具和目录文件说明

强制修改mysql的root密码,在忘记mysql密码时有用
sh /www/wdlinux/tools/mysql_root_chg.sh

ftp配置文件检查,在FTP不能连接或登录时有用
sh /www/wdlinux/tools/pureftp_conf_check.sh

wdcp权限检查,在wdcp后台不正常或部分功能无法使用时有用
sh /www/wdlinux/tools/wdcp_perm_check.sh

wdcp数据库无法连接的修复,如登录后台提示”无法连接mysql,请检查mysql是否已启动及用户密码是否设置正确”
sh /www/wdlinux/tools/mysql_wdcp_chg.sh

wdcp后台登录密码忘记的修改方法
sh /www/wdlinux/tools/wdcp_login_chp.sh

wdcp后台限制登录IP设置错误的修复方法
sh /www/wdlinux/tools/wdcp_login_cbip.sh

wdcp后台限制登录错误次数的修复方法
sh /www/wdlinux/tools/wdcp_cdip.sh

修改时间和同步时间的方法
sh /www/wdlinux/tools/wdcp_ntp.sh

端口说明
默认情况下wdcp的后台是使用到8080端口,可修改

lamp环境里
httpd是用到80端口

lnmp环境里
nginx是用到80端口

在lnamp环境里
httpd是用到88端口(不可修改)
nginxd是用到80端口

希望不要再有人问为什么在lnamp环境里,httpd变成了88端口

相关的启动命令
service wdapache start|stop|restart wdcp后台 启动|停止|重起
service nginxd start|stop|restart nginx服务 启动|停止|重起
service httpd start|stop|restart httpd服务 启动|停止|重起
service pureftpd start|stop|restart ftp服务 启动|停止|重起
service mysqld start|stop|restart mysql服务 启动|停止|重起

wdcp后台服务环境安装目录(wdcp2后才有,1.X没有)
/www/wdlinux/wdapache wdcp后台用的apache
/www/wdlinux/wdphp wdcp后台用的php

相关软件安装目录
/www/wdlinux/nginx nginx安装目录
/www/wdlinux/apache apache安装目录
/www/wdlinux/pureftpd pureftpd安装目录
/www/wdlinux/Zend zend安装目录

默认mysql数据库文件及日志目录
/www/wdlinux/mysql/var

虚拟主机配置文件
/www/wdlinux/nginx/conf/vhost
/www/wdlinux/apache/conf/vhost

相关配置文件
/www/wdlinux/etc/my.cnf
/www/wdlinux/etc/php.ini
/www/wdlinux/nginx/conf/nginx.conf
/www/wdlinux/php/etc/php-fpm.conf
/www/wdlinux/apache/conf/httpd.conf
/www/wdlinux/apache/conf/httpd-wdl.conf
/www/wdlinux/etc/pure-ftpd.conf
/www/wdlinux/etc/pureftpd-mysql.conf

默认web日志目录
/www/wdlinux/nginx/logs
/www/wdlinux/apache/logs
也可以在后台设置默认是
/www/web_logs

默认备份文件目录(后台可设置)
/www/backup

默认回收站目录(后台可设置)
/www/trash

apache使用ssl的记录

apache使用ssl的记录
我们某个电商客户需要使用ssl通过国外的某个安全认证,所以需要购买了赛门铁克许可的ssl证书。以下是一些记录:
1.apache2.0.64的版本编译ssl模块的时候有点需要注意,centos 6.4 64bit是我们目前的操作系统版本。但是openssl包都是1.x版本的了。
apache 2.0.64的ssl模块是需要openssl 0.9.8系列的文件,所以一直编译不过,最后发现才是一个bug。解决方法就是单独使用openssl 0.9.8来
编译mod_ssl模块。
2.加载好ssl后配置ssl.conf文件
3.赛门铁克的证书分为两种格式x509和pkcs。我们使用x509就是了。
再得到许可的证书前,需要给他们提供许可证和私密,他们再给你提供通用浏览器的公用许可证了。
4.生成私密key和授权文件csr
openssl genrsa -out www.:.key 2048
openssl req -new -key www.:.com.key -out www.:.com.csr
5.向他们提供文件后得到x509的颁发证书。
6.ssl配置文件内容为:

SSLSessionCache dbm:/opt/apache2/logs/ssl_scache
SSLSessionCacheTimeout 300
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.sklinux.com
DocumentRoot /webroot/sklinux.com/public_html
ServerAdmin sk@sklinux.com
UseCanonicalName Off
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
DirectoryIndex index.php
SSLEngine on
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCertificateFile /opt/apache2/conf/ssl/sklinux.com.crt
SSLCertificateKeyFile /opt/apache2/conf/ssl/sklinux.com.key
SSLSessionCacheTimeout 300
SSLCACertificatePath /opt/apache2/conf/ssl
#SSLCACertificateFile /opt/apache2/conf/ssl/sklinux.com.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLOptions +StdEnvVars
</VirtualHost>

Rsync原理以及使用

Rsync使用的Rsync演算法来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 核心算法 假定在名为和的两台计算机之间同步相似的文件A与B,其中对文件A拥有访问权,对文件B拥有访问权

Rsync使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

算法核心部分:

假定在名为α和β的两台计算机之间同步相似的文件A与B,其中α对文件A拥有访问权,β对文件B拥有访问权。并且假定主机α与β之间的网络带宽很小。那么rsync算法将通过下面的五个步骤来完成:

1.β将文件B分割成一组不重叠的固定大小为S字节的数据块。最后一块可能会比S 小。

2.β对每一个分割好的数据块执行两种校验:一种是32位的滚动弱校验,另一种是128位的MD4强校验。

3.β将这些校验结果发给α。

4.α通过搜索文件A的所有大小为S的数据块(偏移量可以任选,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。

5.α发给β一串指令来生成文件A在β上的备份。这里的每一条指令要么是对文件B经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件B的任何一个数据块匹配上的。
继续阅读