############################################# # Custom Linux ISO Bulid # Author: 楚霏 # Company: chengyongxu.com # Date: 2011-04-28 # Update: 2011-12-23 # Env: CentOS 5.5 x86_64 && CentOS 6.2 x86_64 ############################################# 一、安装制作发行版所需的基本软件包并创建工作目录 yum -y install anaconda-runtime createrepo yum-utils anacondaanaconda-help … More
Tag: nginx
PHP-Fcgi下PHP的执行时间设置
昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒: max_execution_time = 300 再查nginx的相关配置,无果。 写了一个php的测试页再测 echo ‘aaa’; set_time_limit(0); sleep(40); echo ‘aa’; 依然超时,可以确定set_time_limit这个函数没生效。 再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题 30s 查官方文档:http://php-fpm.org/wiki/Configuration_File request_terminate_timeout – The timeout (in seconds) for serving a single request after which the worker process will … More
解决通过CDN时nginx下transfer-encoding为chunked
网站经过CDN后,看CSS文件的header发现 Transfer-Encoding: chunked google了许久,发现是CDN的抓取好像只支持http 1.0 而nginx的 gzip_http_version选项默认值为1.1 在nginx的配置文件中增加或修改gzip_http_version参数,为: gzip_http_version 1.0 改完重启nginx 再看已经正常。 参考文档:http://wiki.nginx.org/NginxHttpGzipModule#gzip_http_version http://forum.nginx.org/read.php?2,2630
批量备份服务器配置文件和目录
功能: 1. 只在备份机执行,远程的服务器只需要允许备份机用root通过密钥登录; 2. 在备份机上配置需要备份哪些服务器,在NEED_BACKUP_SERVERS这个数组增减; 3. 在备份机上配置需要备份服务器上哪些文件,在NEED_BACKUP_DETAIL这个数组增减,如果需要备份某台服务器上NEED_BACKUP_DETAIL数组里定义的某个文件就备份,不存在的文件则自动跳过,例如Web服务器上没my.cnf , 也没有影响; 4. 如果服务器上产生的新备份和已经存在已往备份内容一样则只保留时间较早的备份。因为服务器的配置文件不是经常改动的; 5. 通过修改定义KEEP_BACKUP_NUM为个变量,可以决定远程服务器上保留最近多少份备份,我这里定义的是10份。备份机上保留所有远程服务器的备份。因为配置文件都比较小,不用担心磁盘空间占用问题。 用过下列技术: 1. 获取远程服务器IP,如果某台服务器没有公网IP则使用该服务器的“主机名_IP.备份年月日_备份时间.tar.gz 2. 通过循环、判断,对数组中的元素重新赋值; 本脚本下载地址: http://down.chengyongxu.com/Backup_Config_Files_Of_Remote_Servers.sh 下载之后请留意版本号和更新日志。 #!/bin/bash ################################################################## # Backup_Config_Files_Of_Remote_Servers # Env: Centos 5.5 x86_64 # Created by Hernan on 2011-04-06 … More
Nginx限制带宽
http { limit_rate 25k; #每个连接的速度限制 limit_zone to_vhost $server_name 1m; #每个域名的总带宽限制 limit_conn to_vhost 30; #每个连接可以开多少个线程 } 如果您知道怎么限制A域名带宽为3M,B域名带宽为2M,请不吝赐教,十分感激。
改Nginx源码做无效伪装
伪装实际上并没有什么意义。 主要牵扯到两个文件 进入解压目录/path_to_nginx_source: 文件一: /path_to_nginx_source/src/core/nginx.h 在这个文件中可以把 #define NGINX_VERSION “0.7.65″ #define NGINX_VER “Nginx/” NGINX_VERSION 改为你需要的,例如: #define NGINX_VERSION “2.0.63″ #define NGINX_VER “Apache/” NGINX_VERSION 文件二: /path_to_nginx_source/src/http/ngx_http_special_response.c 把 Nginx 改为你需要的,例如: Apache 另外还可以改一报错信息的html 比如删除所有的<center>和</center>,删除所有hr 文件三: src/http/ngx_http_header_filter_module.c 把相应的选项 static char ngx_http_server_string[] = … More
“version libmysqlclient_16 not defined in file libmysqlclient.so.16…”解决
一个程序只要使用php的 session_start(); 函数,nginx就报502错误。 此时,nginx错误日志报: 2010/12/07 16:35:40 [error] 24679#0: *4 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ip.ip.ip.ip, server: www.chengyongxu.com, request: “GET /ii.php HTTP/1.1″, upstream: “fastcgi://unix:/tmp/php-fcgi.sock:”, host: “www.chengyongxu.com” 奇怪,我没使用负载均衡呀。再看php-fpm的报错: Dec … More
shell修改配置文件
有时候开发同事会要求反复修改那一两个配置文件,比如上午打开一个站点的外部访问,下午关闭。 这种重复性的劳动本来就该机器来做嘛! 写了个脚本,用到了: 1.sed更改关键词所在的行,例如:sed给匹配行加注释、删注释 2.sed中使用shell变量时需要用双引号”” #!/bin/bash # 此脚本用于控制demo.chengyongxu.com的开和关 # Author: 楚霏 # Company: chengyongxu.com ############################################################################### # # 在这一部分定义相关变量 # ############################################################################### # 项目名称 prog=”demo.chengyongxu.com” # WEB服务器 # httpd nginx WEBSERVER=httpd # 需要改的配置文件 CONFIG_FILE_A=(\ /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/vhost.conf ) # … More
Nginx下配置Cache-Control头
HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。 在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。 请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。 响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。 Nginx的ngx_http_headers_module模块可以对Cache-Control头相关的东西进行配置 例如: # 相关页面设置Cache-Control头信息 if ($request_uri ~* “^/$|^/search/.+/|^/company/.+/”) { add_header Cache-Control max-age=3600; } if ($request_uri ~* “^/search-suggest/|^/categories/”) { add_header Cache-Control max-age=86400; } 个人理解的max-age意思是:客户端本地的缓存,在配置的生存时间内的,客户端可以直接使用,超出生存时间的,到服务器上取新数据。当然这些还要看客户端浏览器的设置。 如有偏颇,欢迎指正。非常感谢!
Memcached自动安装脚本
今天写了一个小脚本。两点收获: 一、只要稍做修改就可以自动下载最新的开源软件包,像nginx就可以,难点在于得到下载用的url。这里采用的是elinks和wget。 二、用tar tf加上head命令就可以得到解压后的目录,没想到这么简单,大部分情况都是适用的,除非是有些变态软件解压后没建目录,直接解压到当前目录的那种。 脚本贴出,如下: #!/bin/bash # Memcached Auto Install # Author: 楚霏 # Company: chengyongxu.com # Create Date: 2010-07-22 # Last Update Date: 2011-10-13 10:21 ######################################################### # # 在这一部分定义相关变量 # ######################################################### # 下载链接地地址 LATEST_MEMCACHED_LINK=`elinks http://memcached.org … More