September 14, 2011
Nginx作为反向代理时传递客户端IP
"因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值。同样适用于前端是 Squid 或者其他反向代理的情况。(通用的解决方案是直接取服务器的变量 HTTP_X_FORWARDED_FOR 的值即可取出客户端的真实ip地址)\n首先前端的 Nginx 要做转发客户端 IP 的配置:\nlocation / {\nproxy_pass http://localhost:8000;# Forward the user’s IP address to Rails\nproxy_set_header X-Real-IP $remote_addr;\nneeded for HTTPS proxy_set_header X_FORWARDED_PROTO https; proxy_set_header X-Forwarded-For $remote_addr;\nproxy_set_header X-Forwarded-For …"
September 13, 2011
(linux)nfs配置教程[原创]
"转载请注明文本来源:\n网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。\n操作环境为:Centos6.0\n一、NFS服务端设置(192.168.0.100) 1.安装并启用相应的服务,将防火墙关闭\n#yum -y install nfs* portmap #启动端口映射 #service portmap start #启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求 #service nfs start #关闭防火墙 #service iptables stop 在这里可以对nfs进行一下验证\n#mount -t nfs 192.168.0.100:/data/nfs /mnt/nfs #本地验证 #touch /mnt/nfs/server.txt #ls /mnt/nfs #ls /data/nfs 如果/mnt/nfs和/data/nfs两个目录里的内容一样的话,则说 …"
September 12, 2011
php-fpm日志里出现[WARNING] fpm_children_bury()信息的解决办法
"最近接手nginx+php的WEB环境维护,发现PHP-cgiCPU很好,也造成负载很高,于是在网上找了些资料,并且针对自己的错误,将问题收集再次,并且网上还给了解决方案,所以放在这里留作以后查询\nan 11 08:54:01.164292 [NOTICE] fpm_children_make(), line 352: child 10088 (pool default) started\nJan 11 08:54:01.164325 [WARNING] fpm_children_bury(), line 215: child 7985 (pool default) exited on signal 15 SIGTERM after 63.778601 seconds from start\nJan 11 08:54:01.165485 [NOTICE] fpm_children_make(), line 352: child 10089 (pool default) started\nJan 11 08:54:01.165514 [WARNING] fpm_children_bury(), …"
September 9, 2011
kickstart 语法详解
"kickstart 语法\n接下来探讨ks.cfg 的相关参数,这些参数笔者将依上述ks,cfg 出现的先后顺序来讨论,有些参数并不是一定要设置。完整的kickstart 参数意义可参考下列网址。\nhttp://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/sysadmin-guide/s1-kickstart2-options.html\nks.cfg 文件由三个部份皆组成:\ncommand 区段—此部份包含了必要安装选项\npackages 区段—列出欲安装套件\n%pre and %post 区段\ncommand 区段 ■lang(必要):安装时所使用的语言 例如:安装过程中选用中文语言,lang zh_TW.Big5 ■langsupport (必要):指定系统使用的语言。假如你安装一至多国语系,你必需使用默认选项去指定默认语言。语法为: 例如:langsupport –default en_US.UTF-8 zh_TW.Big5 en_US.UTF-8 ■键盘(必要):设置系统键盘的种类。语法为:keyboard us ■鼠 …"
September 9, 2011
redhat下使用dvd作为yum源
"使用rpm包的最大问题就是安装依赖问题,yum就是为了解决这个问题而出现的,但是Redhat AS的更新是要收费的,所以在解决这个收费的问题之前你只能暂时用安装盘作为yum源,实际上,这也是可以做到的:\n1、mount安装盘到/mnt/cdrom\n#mkdir /mnt/cdrom #mount -t auto /dev/cdrom /mnt/cdrom\n2、创建/etc/yum.rep.d/rhel.repo,文件内容如下:\n[base] name=Red Hat Enterprise Linux $releasever – $basearch baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
September 9, 2011
kickstart安装教程[原创]
"转载请注明本文来源: http://blog.haohtml.com/archives/11341\n我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把 ks.cfg及RPM安装文件考到一台HTTP或NFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCP、 TFTP和PXElinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打 入一个设置好的命令就可以安装好一RedHat台机器了。 实现上面安装的过程是这样的:PXE网卡启动——DHCP服务器——获得IP——从TFTP上下载pxelinux.0、vmlinuz、initrd——启动系统——通过PEXlinux去HTTP下载ks.cfg文件—–跟据ks.cfg去HTTP下载RPM包及安装系统——完成安装。\n下面的教程我们主要的工作目录在/tftpboot/目录里,/tftpboot/目录里是光盘安装包,可以将光盘内容全部复制到这里,也可以直接挂载到pub目录.\n基本介绍:\nlinux下的网络批量 …"
September 8, 2011
squid命中率(转)
"察看命中率的shell cat access.log|gawk ‘{print $4}’|sort|uniq -c|sort -nr\n重点观察下面三个内容\nTCP_MEM_HIT TCP_IMS_HIT TCP_REFRESH_HIT 1198559749.083 0 60.4.218.18 TCP_REFRESH_HIT/200 271 GET – FIRST_UP_PARENT/d text/html 1198559813.186 1 218.106.61.11 TCP_IMS_HIT/304 233 GET – NONE/- text/html 1198559829.358 0 218.106.61.11 TCP_IMS_HIT/304 224 GET – NONE/- text/html\nTCP_IMS_HIT:NONE 客户端发送确认请求,Squid发现更近来的、新鲜的请求资源的拷贝。 Squid发送更新的内容到客户端,而不联系原始服务器。(这指明Squid对本次请求,不会与任何其他服务器(邻居或原始服务器)通信。) TCP_MEM_HIT:NONE …"
September 7, 2011
RHEL6/CentOS6下root用户密码破解
"RHEL升级到版本6以后,发现root用户密码破解和centos.5的不一样了;在单用户模式下输入passwd命令不再有效。\n这是由于在安装RHEL6(centos6)的过程中或者以前使用过程上,SELinux的默认级别为非0的缘故;\n因此在进入单用户模式以后需要输入_setenforce 0_命令来将SELinux级别临时变为0以后,才可以使用passwd命令!\n当然如果你在安装过程中,更改了SELinux的级别,那么就不会遇到上述问题了!\n据称,这是RHEL6的一个bug……"
September 6, 2011
squid中HTTP/1.1 501 Method Not Implemented的解决办法
"刚安装的squid,但在用squidclient清除缓存的时候,提示错误:\nfreebsd# ./squidclient -m PURGE -p 80 http://www.testsquid.com/index.html HTTP/1.1 501 Method Not Implemented Date: Tue, 28 Jun 2011 23:03:22 GMT Server: Apache/2.2.19 (FreeBSD) mod_ssl/2.2.19 OpenSSL/0.9.8k DAV/2 Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 217 Connection: close Content-Type: text/html; charset=iso-8859-1 \u0026lt;!DOCTYPE HTML PUBLIC \u0026#34;-//IETF//DTD HTML 2.0//EN\u0026#34;\u0026gt; \u0026lt;html\u0026gt;\u0026lt;head\u0026gt; \u0026lt;title\u0026gt;501 Method Not …"
September 6, 2011
杀死mysql指定的进程
"在执行查询的时候,有时候用show processlist命令查看有过多的进程,造成mysql假死的状态,这个时候可以将一些僵死的进程杀掉.恢复正常状态 找到语句的 thread id\nmysqladmin -uroot -proot kill xxxxx 如果是系统里的mysql进程的话,可以参考:"