iostat安装

作者 : admin 于 2010年05月10日, 10:42:30
2010
05-10

原来一直以为iostat跟iftop一样是独立的安装包,后google发现是一个工具包中的工具,叫systat。

下载地址:http://pagesperso-orange.fr/sebastien.godard/download.html

使用说明书 http://pagesperso-orange.fr/sebastien.godard/man_iostat.html

samba配置小结

作者 : admin 于 2010年05月06日, 13:18:07
2010
05-6

最近想把本本彻底改成linux,前期准备就是要适应一切能想到的应用。跟台式的文件交互,ftp、ssh都可以,但还是觉得共享会方便,于是配置了一下samba。

本子上的系统用的是centos5.4 X64,samba软件是使用命令 yum install samba 进行安装。

首先,启动关闭samba命令

  1. service smb start
  2. service smb restart
  3. service smb stop

首先配置一个公共的读写目录

  1. mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
  2. touch /etc/samba/smb.conf
  3. #smb.conf 内容为
  4. [global]
  5. workgroup = home
  6. netbios name = notebook
  7. server string = Samba Server
  8. security = share
  9. [public]
  10. path = /home/public
  11. browseable = yes
  12. writeable = yes
  13. guest ok = yes
  14. public = yes
  15. force user = nobody
  16. force group = nobody

重启samba后,在windows中运行(局域网互联) 敲入 \\ip 则可以看到public共享目录

如果增加权限验证,则需要增加用户信息:samba用以下两个命令来增加用户信息

  1. smbadduser   //增加用户
  2. mbpasswd     //增加密码

配置文件如下

  1. [global]
  2. workgroup = ksgdfa
  3. netbios name = ksgfdsa
  4. server string = Samba Server
  5. security = share
  6. encrypt passwords = yes
  7. smb passwd file = /etc/samba/smbpasswd
  8.  
  9.  
  10. [public]
  11. path = /home/public
  12. browseable = yes
  13. writeable = yes
  14. guest ok = yes
  15. public = yes
  16. force user = nobody
  17. force group = nobody
  18.  
  19. [sunboyu]
  20. path = /opt/samba/sunboyu
  21. browseable = yes
  22. writeable = yes

补充:其中,公共目录的权限,用配置成 nobody:nobody 777
而 sunboyu 目录的权限,则配置成 sunboyu:sunboyu 777

tips:如果配置成功后,一直无法写入文件,则检查是否关闭selinux,如果没关闭,关闭即可。

rsync使用小结

作者 : admin 于 2010年04月17日, 22:28:51
2010
04-17

多台服务器使用,难免用到同步,工作中大量接触的是rsync,简单测试了一下其命令和应用。

rsync官方主页: http://samba.anu.edu.au/rsync/ 下载地址为:http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz

安装:

  1. ./configure --prefix=/opt/rsync-3.0.7
  2. make
  3. make install

默认好像没有生成配置文件,创建

  1. vi /etc/rsync.conf
  2. //填入以下内容
  3. uid=nobody
  4. gid=nobody
  5. max connections=3
  6. use chroot=no
  7. log file=/var/log/rsyncd.log
  8. pid file=/var/run/rsyncd.pid
  9. lock file=/var/run/rsyncd.lock

测试的两台主机:192.168.0.20 192.168.0.30

在192.168.0.30的/etc/rsync.conf下增加以下代码

  1. [test]       //定义一个域
  2. path=/root/test
  3. comment=test folder
  4. uid=root
  5. ignore errors
  6. read only=no
  7. list=no

然后测试两个命令
1、把192.168.0.20上的 /root/source 目录同步到 192.168.0.30 的 /root/test上
/opt/rsync-3.0.7/bin/rsync -vazu –progress /root/source 192.168.0.30::test
2、从192.168.0.30 的 /root/test 同步到 192.168.0.20上的/root/test
/opt/rsync-3.0.7/bin/rsync -vzrtopg –progress 192.168.0.30::test /root/test

配置权限:
在192.168.0.30上vi /etc/rsycnpass 然后 echo test:123456 >> /etc/rsycnpass
配置文件修改为

  1. secrets file = /etc/rsyncpass
  2. [test]       //定义一个域
  3. path=/root/test
  4. comment=test folder
  5. uid=root
  6. ignore errors
  7. read only=no
  8. list=no
  9. auth users=test

则上边命令1修改为 /opt/rsync-3.0.7/bin/rsync -vazu –progress /root/source test@192.168.0.30::test
命令2改为 /opt/rsync-3.0.7/bin/rsync -vzrtopg –progress test@192.168.0.30::test /root/test

在nginx下配置自动虚拟主机

作者 : admin 于 2010年01月09日, 00:33:37
2010
01-9

以前用apache,很多虚拟主机的时候,用 mod_vhost_alias 模块去解决。nginx似乎没有这样的功能。

原来为了做这个功能,我用python写了一堆脚本,去自动管理nginx的配置文件,结果还是不理想。频繁重写配置文件,频繁重启,总会出现点问题。

在nginx的0.8.*下,发现了这样的功能:http://wiki.nginx.org/NginxHttpCoreModule

Since nginx 0.8.25 named captures can be used in server_name:
server {
server_name ~^(www\.)?(?.+)$;
location / {
root /sites/$domain;
}
}

大喜,于是乎做出如下配置,实现了nginx下自动虚拟主机的功能:

  1. server {
  2.      listen       80;
  3.      server_name  ~^(?P<domainname>.+)\.autovhost\.sunboyu\.cn$;
  4.      location / {
  5.          #autoindex  on;
  6.          root   /home/vhost/$domainname;
  7.          index  index.html index.htm;
  8.      }
  9.      access_log /home/autovhost.sunboyu.cn.log main;
  10. }
  11. </domainname>

测试通过。

我的开源虚拟主机管理系统nginx版本指日可待。

改变exec的阻塞模式

作者 : admin 于 2009年12月25日, 10:19:41
2009
12-25

很多操作时间会很长,不能让用户在页面上执行PHP脚本,否则页面会被拖死。

一个不错的方案,就是提交到后台去执行。

linux有个命令 nohup command & 这样就会提交到后台,而终端的用户体会不到程序执行的过程。

原来我使用这种方式 shell_exec( “nohuo php file.php &” ) 进行后台提交,后来发现速度依然不快, 还是被挂起了。查看手册,exec函数有如下提示:

Note: 如果用本函数启动一个程序并希望保持在后台运行,必须确保该程序的输出被重定向到一个文件或者其它输出流去,否则 PHP 会在程序执行结束前挂起。

因此,这样修改就达到了目的:

exec( “nohuo php file.php >> /dev/null &” )

nginx做反向代理的配置

作者 : admin 于 2009年12月16日, 18:39:13
2009
12-16

感谢铎哥的配置,感谢宴哥解决ssl连接的问题。

  1. server
  2.  {
  3.         listen      8181;
  4.         resolver 202.96.64.68;
  5.         location /
  6.         {
  7.             proxy_pass http://$http_host$request_uri;
  8.             proxy_redirect          off;
  9.             proxy_set_header        Host            $host;
  10.             proxy_set_header        X-Real-IP       $remote_addr;
  11.             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  12.             client_max_body_size    10m;
  13.             client_body_buffer_size 128k;
  14.             proxy_connect_timeout   90;
  15.             proxy_send_timeout      90;
  16.             proxy_read_timeout      90;
  17.             proxy_buffers           32 4k;
  18.         }
  19.         access_log /home/proxy.log;
  20.  }

django进程管理器

作者 : admin 于 2009年12月16日, 16:42:49
2009
12-16

nginx+php,php有个进程管理器,为php-fpm,Django没有,网上大概看了看,找出了几段,小改一下,能用了。

  1. #!/bin/bash
  2. siteroot="/home/project/sun"
  3. sitename="http://python.sunboyu.cn"
  4. cd $siteroot
  5. if [ $# -lt 1 ];then
  6.     echo "Usages: server.sh [start|stop|restart]"
  7.     exit 0
  8. fi
  9.  
  10. if [ $1 = start ];then
  11.     isrun=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|wc -l`
  12.     if [ $isrun -eq 1 ];then
  13.         echo $sitename" has running!"
  14.         exit 0
  15.     else
  16.         python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings
  17.         echo $sitename"is running!!"
  18.     fi
  19. elif [ $1 = stop ];then
  20.     djid=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|awk '{print $2}'`
  21.     kill -9 $djid
  22.     echo $sitename" is stop!"
  23. elif [ $1 = restart ];then
  24.     djid=`ps aux|grep "manage.py runfcgi"|grep -v "grep"|awk '{print $2}'`
  25.     kill -9 $djid
  26.     echo $sitename" is stop!!"
  27.     python manage.py runfcgi method=threaded host=127.0.0.1 port=8000 --settings=settings
  28.     echo $sitename" is start!!"
  29. else
  30.     echo "Usages: server.sh [start|stop|restart]"
  31. fi

django+nginx的部分配置

作者 : admin 于 2009年12月16日, 11:26:55
2009
12-16

nginx的配置,特别感谢爱词霸吕同学,发扬了开源共享的精神,大大缩短了我的调试成本。

  1. server {
  2.     listen 80;
  3.     server_name python.sunboyu.cn;
  4.     location / {
  5.           fastcgi_pass 127.0.0.1:8000;
  6.           fastcgi_buffers      16  128k;
  7.           fastcgi_ignore_client_abort  on;
  8.           fastcgi_read_timeout 60;
  9.  
  10.           fastcgi_param PATH_INFO $fastcgi_script_name;
  11.           fastcgi_param REQUEST_METHOD $request_method;
  12.           fastcgi_param QUERY_STRING $query_string;
  13.           fastcgi_param CONTENT_TYPE $content_type;
  14.           fastcgi_param CONTENT_LENGTH $content_length;
  15.           fastcgi_param SERVER_PROTOCOL  $server_protocol;
  16.           fastcgi_param SERVER_PORT      $server_port;
  17.           fastcgi_param SERVER_NAME  $server_name;
  18.  
  19.           fastcgi_pass_header Authorization;
  20.           fastcgi_intercept_errors off;
  21.  
  22.     }
  23. }

同时附上一个额外的文档,nginx变量跟cgi协议的对应关系。
注:在配置中,并不是所有的变量必须加上,而是根据环境选择其中应该有的变量,至于具体加哪些变量,得求助高人了。

  1. #    Fast CGI param reference
  2. #    fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  3. #    fastcgi_param    QUERY_STRING  $query_string;
  4. #    fastcgi_param    REQUEST_METHOD  $request_method;
  5. #    fastcgi_param    CONTENT_TYPE  $content_type;
  6. #    fastcgi_param    CONTENT_LENGTH  $content_length;
  7. #    fastcgi_param    GATEWAY_INTERFACE  CGI/1.1;
  8. #    fastcgi_param    SERVER_SOFTWARE  nginx;
  9. #    fastcgi_param    SCRIPT_NAME  $fastcgi_script_name;
  10. #    fastcgi_param    REQUEST_URI  $request_uri;
  11. #    fastcgi_param    DOCUMENT_URI  $document_uri;
  12. #    fastcgi_param    DOCUMENT_ROOT  $document_root;
  13. #    fastcgi_param    SERVER_PROTOCOL  $server_protocol;
  14. #    fastcgi_param    REMOTE_ADDR  $remote_addr;
  15. #    fastcgi_param    REMOTE_PORT  $remote_port;
  16. #    fastcgi_param    SERVER_ADDR  $server_addr;
  17. #    fastcgi_param    SERVER_PORT  $server_port;
  18. #    fastcgi_param    SERVER_NAME  $server_name;

squid,nginx,apache几个代理软件的比较

作者 : admin 于 2009年09月13日, 11:51:03
2009
09-13

最近一直在研究代理缓存之类的东东,几个软件一直在瞎鼓捣,没弄出个结果,自己也稀里糊涂,总结一下几天折腾的成绩:

在并发上,nginx无疑是老大,做反向代理的时候,没有发现squid的并发方面介绍,所以暂且认为ngnix是老大,apache的稳定性有目共睹,但在并发方面的确不是很如意。

缓存方面:squid,apache都支持diskcache和memcache,根据http的head头来确定是否缓存,nginx不支持缓存,不过我在google开源上看见了新浪的水杨老大的一个东东,给nginx加上了文件缓存,不过没有大规模使用,暂时不把它当做一种解决方案。

在代理和缓存的规则上,apache很强,很强大的重写功能,尤其是强制修改http规则,不过这个功能我始终没有调试成功,no-cache的页面始终无法去缓存。

如果只是做网站的反向代理,负载均衡,nginx感觉要比squid强,性能强悍,配置方便。

如果是做代理+缓存加速,那squid的功能和稳定性还是很好的,毕竟在互联网上大量应用。

apache呢?好像没它的事情了。当然不是,有些地方可以拿他的功能当中间件使用,这个等下次分解。

给.Net程序加个cache

作者 : admin 于 2009年09月06日, 22:47:07
2009
09-6

朋友说一个.net的网站总被dos攻击,让给个方案,还不能贵了。听对方描述一番,感觉是iis的垃圾造成连接数的问题。

很少研究iis,但我知道linux下很多软件可以很好的提升并发连接数,于是出一简单方案去尝试。

未命名-1

 Page 1 of 8  1  2  3  4  5 » ...  Last »